1

私はかなりの範囲を検索しましたが、こぶを乗り越えるのに役立つものは何も見つかりませんでした. 必要に応じて Angular2 ExceptionHandler を実装したと思いますが、呼び出されることはありません。

Main.ts:

import { bootstrap } from '@angular/platform-browser-dynamic';
import { disableDeprecatedForms, provideForms } from '@angular/forms';
import { AppComponent } from './app.component';
import { ExceptionHandler, Injector , provide, Provider} from '@angular/core';
import { APP_ROUTER_PROVIDERS } from './app.routes';    // <-- load in global routes and bootstrap them
import { ErrorHandler } from './errorhandler/error-handler.component';

bootstrap(AppComponent,[ 
    APP_ROUTER_PROVIDERS,
    disableDeprecatedForms(),
    provideForms(),
    provide(ExceptionHandler, {useClass: ErrorHandler})
])

error-handler.component.ts:

import { Component, Injectable, ExceptionHandler } from '@angular/core';
import { ROUTER_DIRECTIVES } from '@angular/router';
import { APP_PROVIDERS } from '../app.providers';

@Component({ 
  moduleId: module.id,
  template: `Error happened here!!!!`,
  directives: [ ROUTER_DIRECTIVES ],
  providers: [ APP_PROVIDERS ]
})

@Injectable()
export class ErrorHandler extends ExceptionHandler {

  call (exception: any, stackTrace?: any, reason?: string): void {


  }

}

サービスの 1 つで (例外処理をテストするために) 強制的に発生させている HTTP エラーがあり、「グローバル」ハンドラーが呼び出されることを期待しています。何か不足していますか?残念ながら、現在はあまり多くのドキュメントがありません...

ティア。

ジェームズ

4

1 に答える 1