捕获异常并在视图中显示错误消息

时间:2017-02-14 09:42:42

标签: angular typescript exception rxjs observable

使用Options -MultiViews方法和subscribe()时,我能够捕获异常,但这是在服务呼叫的基础上完成的。

有没有办法捕获页面中任何地方发生的异常并在视图中显示它?

直接捕获异常并在控制台中显示它们,但是我需要在视图中显示一些内容,以提供有用的错误消息,而不仅仅是冻结。

由于

1 个答案:

答案 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?