【发布时间】:2017-06-02 08:39:42
【问题描述】:
我需要在 Angular 4 应用程序中实现全局错误处理。 ErrorHandler 机制适用于某些情况,但并非适用于所有情况。
例如,当我们遇到一些严重错误时,例如缺少模板或其他东西,ErrorHandler 会忽略它。当我为模板使用错误的 URL 时,我收到 zone.js 错误:
zone.js?fad3:567 未处理的承诺拒绝:模板解析错误: 'my-app' 不是已知元素:
zone.js 不会抛出异常,只是控制台错误,所以window.onerror 也不起作用。
错误处理程序:
@Injectable()
export class CommonErrorHandler implements ErrorHandler {
constructor(private injector: Injector) {
}
public handleError(error: any): void {
console.log("error", error);
}
}
在app.module注册:
providers: [
AuthGuard,
{ provide: ErrorHandler, useClass: CommonErrorHandler }
}
更新: Plnkr
【问题讨论】:
标签: angular