2016-11-15 90 views
5

我想在Angular 2中创建集中式异常处理(对于所有代码而不仅仅是观察对象),以便如果存在未处理的错误,它不会崩溃应用程序,但会记录它。目前,当出现未处理的异常时,我的应用程序变得没有响应,我必须重新加载它。如何在Angular 2中创建集中式异常处理以从未处理的异常中恢复

import { NgModule, ErrorHandler } from '@angular/core'; 

export class AppErrorHandler implements ErrorHandler 
{ 
    rethrowError = false; 

    handleError(error: any) 
    { 

    } 
} 

未处理的错误不要去的HandleError,但似乎我的应用程序停止工作,重新抛出:我如下创建的ErrorHandler。请帮忙。

+0

如果你实现ErrorHandler,你需要重载/实现'call'函数,它可能类似'call(error,stackTrace = null,reason = null)'。在我的答案中检查提供者部分。 – bhantol

+0

嗨bhantol,谢谢你的回答。我已经有你在下面显示的提供部分。错误成功转到handleError函数。问题是它仍然会破坏我的应用程序。我想要记录错误并尽可能继续。 – LanceM

+0

您可能想要描述一个方案,从而定义崩溃的含义。 “崩溃”会发生什么,你不想发生的事情是什么会进一步帮助。 – bhantol

回答

1

使用provide来获取您的异常处理程序。

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