使用Options -MultiViews
方法和subscribe()
时,我能够捕获异常,但这是在服务呼叫的基础上完成的。
有没有办法捕获页面中任何地方发生的异常并在视图中显示它?
直接捕获异常并在控制台中显示它们,但是我需要在视图中显示一些内容,以提供有用的错误消息,而不仅仅是冻结。
由于
答案 0 :(得分:2)
您可以覆盖模块中的全局错误处理程序:
https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.html
import { NgModule, ErrorHandler } from '@angular/core';
class MyErrorHandler implements ErrorHandler {
handleError(error) {
// do something with the exception
}
}
@NgModule({
providers: [{ provide: ErrorHandler, useClass: MyErrorHandler }]
})
class MyModule {}
对于自定义错误对话框或错误消息,我将创建一个自定义ErrorLogService,它允许组件订阅错误事件。显示错误的组件将订阅错误事件,并显示错误消息或弹出错误对话框。
有关如何使用Flux执行此操作,请参阅此答案(模式很重要 - 不是涉及的特定类): How can I maintain the state of dialog box with progress all over my Angular 2 application?