Angular2全局ErrorHandling对话框

时间:2017-04-25 12:11:49

标签: angular exception-handling observable

Angular Global ErrorHandling对话框

我正在开发一个angular2应用程序,我试图为它做一些全局异常处理。基本上我要做的就是捕获应用程序中的每个异常,然后弹出一个对话框,显示错误标题和错误消息。

我发现你可以实现自己的ErrorHandler,而不是像你这样在appModule中提供:

providers: [{
    provide: ErrorHandler,
    useClass: CustomHandler
}]

现在我想知道是否有可能在错误处理程序中有一个observable,appComponent可以订阅并执行一个触发显示对话框屏幕以显示错误的函数。 (我计划在我的后端抛出自定义错误)

我在设置这样的设置方面遇到了很多麻烦,并且我们无法找到很多类似这样的例子,所以我开始感觉到这一点实际上并不是处理异常的理想方式。关于如何解决这类问题的建议值得欢迎。

1 个答案:

答案 0 :(得分:2)

我回答了一个可能对您有帮助的类似问题:https://stackoverflow.com/a/43610743/5049472

在您的情况下,如果您想添加错误,可以执行yourService.setError(message: string)

然后,必须为显示错误的组件(包含对话框的组件)订阅该服务。当另一个组件设置它时,它将检索错误消息。

关于如何显示对话框的想法:

<dialog *ngIf="showDialog"></dialog>

假设这是订阅服务的组件。showDialog是一个布尔值设置为false的开头。收到错误消息后,将其设置为true。当用户关闭对话框时,您将其设置为false