我正在开发一个angular2应用程序,我试图为它做一些全局异常处理。基本上我要做的就是捕获应用程序中的每个异常,然后弹出一个对话框,显示错误标题和错误消息。
我发现你可以实现自己的ErrorHandler,而不是像你这样在appModule中提供:
providers: [{
provide: ErrorHandler,
useClass: CustomHandler
}]
现在我想知道是否有可能在错误处理程序中有一个observable,appComponent可以订阅并执行一个触发显示对话框屏幕以显示错误的函数。 (我计划在我的后端抛出自定义错误)
我在设置这样的设置方面遇到了很多麻烦,并且我们无法找到很多类似这样的例子,所以我开始感觉到这一点实际上并不是处理异常的理想方式。关于如何解决这类问题的建议值得欢迎。
答案 0 :(得分:2)
我回答了一个可能对您有帮助的类似问题:https://stackoverflow.com/a/43610743/5049472
在您的情况下,如果您想添加错误,可以执行yourService.setError(message: string)
然后,必须为显示错误的组件(包含对话框的组件)订阅该服务。当另一个组件设置它时,它将检索错误消息。
关于如何显示对话框的想法:
<dialog *ngIf="showDialog"></dialog>
假设这是订阅服务的组件。showDialog
是一个布尔值设置为false
的开头。收到错误消息后,将其设置为true
。当用户关闭对话框时,您将其设置为false
。