2016-11-15 60 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}]