0
私はexceptionHandlerのクラスを拡張していますは二回
import {Injectable, ExceptionHandler} from '@angular/core';
export class FirstError extends Error {
handle() {
console.log("This is firstError handler");
}
}
export class AnotherError extends Error {
handle() {
console.log("This is AnotherError handler");
}
}
export class _ArrayLogger {
res = [];
log(s: any): void { this.res.push(s); }
logError(s: any): void { this.res.push(s); }
logGroup(s: any): void { this.res.push(s); }
logGroupEnd() {};
}
@Injectable()
export class CustomExceptionHandler extends ExceptionHandler {
constructor() {
super (new _ArrayLogger(), true);
}
call(exception: any, stackTrace = null, reason = null) {
// I want to have original handler log exceptions to console
super.call(exception, stackTrace, reason);
// If exception is my type I want to do some additional actions
if (exception.originalException instanceof Error) {
exception.originalException.handle();
}
}
}
私の目標は、元Angular2 exceptionHandlerのようにコンソールにエラーを記録super.call持っており、さらに自分自身の例外ハンドルを行うことです。残念ながら、このようなシナリオでは、スーパーはエラーが最初にスローされるときにのみ呼び出されます。第2、第3が発生すると、スーパーは呼び出されません。元のconsole.logがエラーをコンソールに記録するように動作させる方法と、エラー処理を追加する方法はありますか?