如果Angular2遇到内部异常,它将不会记录到控制台.如何检测以下异常?
EXCEPTION: Error during instantiation of MainFormComponent!. ORIGINAL EXCEPTION: TypeError: Cannot set property 'crashMeMaybe' of undefined ORIGINAL STACKTRACE: ... stacktrace ... ERROR CONTEXT: ... context object ...
解决方法
有一个界面ExceptionHandler,您可以通过它提供您选择的自定义实现.见
here和
documentation.
来自BETA.0来源:(facade / exception_handler.d.ts)
/** * Provides a hook for centralized exception handling. * * The default implementation of `ExceptionHandler` prints error messages to the `Console`. To * intercept error handling,* write a custom exception handler that replaces this default as appropriate for your app. * * ### Example * * ```javascript * * class MyExceptionHandler implements ExceptionHandler { * call(error,stackTrace = null,reason = null) { * // do something with the exception * } * } * * bootstrap(MyApp,[provide(ExceptionHandler,{useClass: MyExceptionHandler})]) * * ``` */
更新:
我对BETA.0有点问题
>进口必须被黑客入侵,
>界面似乎被内部细节污染了.
我运行它像:
import {ExceptionHandler} from 'angular2/src/facade/exception_handler'; export interface IExceptionHandler { call(exception: any,stackTrace?: any,reason?: string): void; } export class CustomExceptionHandler implements IExceptionHandler { call(exception: any,stackTrace: any,reason: string): void { alert(exception); } } bootstrap(DemoApp,[ new Provider(ExceptionHandler,{ useClass: CustomExceptionHandler }) ]);