1
私はAngular(v2.4.3)カスタムエラーハンドラの最も単純な実装を得ていますが、それでもエラーを記録することはできません。何が間違っていますか? throwed角2エラーは決してカスタムエラーハンドラには到着しません
app.module.ts
providers: [
{ provide: ErrorHandler, useClass: MyErrorHandler }
]
私の誤りhandler.ts
import { ErrorHandler, Injectable} from '@angular/core';
@Injectable()
export class MyErrorHandler extends ErrorHandler {
constructor(private errorHandlerService: ErrorHandlerService) {
super();
}
public handleError(error: any): void {
console.log('error'); // nothing
}
}
サンプルservice.ts(エラーをスローしようとしている)
addSomething(data) {
let bodyString = JSON.stringify(data);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.url + 'expense', bodyString, options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
private handleError(error: any) {
console.log(error.json()); // error: { message: 'Some error' }
return Observable.throw(error.json());
}
エラーサービスではMyErrorHandlerに決して行きません。何が間違っていますか?
ことが重要だ場合、私は知りませんが、コンソールに、私はまた、このような何か得た:
POST http://path/to/api 422 // logged by zone.js
ありがとうございました。残念ながら、それはまだ動作しません。 –
あなたは '.catch'メソッドを使って別のハンドラを指定したと思います。それを削除すると、カスタムエラーハンドラが呼び出されるのを確認できるはずです – coderek
はい、それです。ありがとうございました!答えとして投稿することができますので、解決策としてマークすることができますか? –