欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Angular处理未可知异常错误的方法详解

程序员文章站 2022-03-07 09:40:07
写在前面代码写得再好,始终都无法完整的处理所有可能产生异常,特别是生产环境中的应用,很大一部分是数据来自用户、远程,很难保证所有数据都按程序规定的产生。事实上,除非测试人员发现或者客户报告,否则都无法...

写在前面

代码写得再好,始终都无法完整的处理所有可能产生异常,特别是生产环境中的应用,很大一部分是数据来自用户、远程,很难保证所有数据都按程序规定的产生。事实上,除非测试人员发现或者客户报告,否则都无法得知。因此,将应用产生的未可知异常进而上报是非常重要的环节。

angular 默认情况下也提供了全局的异常管理,当发生异常时,会把它扔到 console 控制台上。如果你在使用 ng-zorro 时,可能经常就会遇到 icon 未加载的异常消息,这也是异常消息的一种:

而 angular 是通过 errorhandler 统一管理异常消息,而且只需要覆盖其中的 handleerror 方法并重新处理异常消息即可。

errorhandler

首先创建一个 custom-error-handler.ts 文件:

customerrorhandler 可以完整的获取当前用户数据、当前异常消息对象等,并允许通过 httpclient 上报给后端。

以下是 ng-alain 的文档站,由于是使用 google analytics 来分析,只需要将异常消息转给 onerror 即可:

最后,在 appmodule 模块内注册 customerrorhandler :

结论

事实上还有一项非常重要的工作,生产环境中都是打包压缩过后的,换言之所产生的异常消息也是无法与实际代码行数相同的数字,这就需要 sourcemap 的支持,当然正常的生产环境是不会发布这份文件的,所以如果想要得到正确的行列数,还是需要借助一层中间层,在后端利用 模块来解析出真正的行列数值。

angular 的依赖注入(di)系统可以使我们快速替换一些 angular 内置模块,从而实现在不修改业务层面时快速解决一些特殊需求。

总结

到此这篇关于angular如何处理未可知异常错误的文章就介绍到这了,更多相关angular处理未可知异常错误内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!