【发布时间】:2017-08-28 19:17:51
【问题描述】:
我已经获得了 Angular (v2.4.3) 自定义错误处理程序的最简单实现,但仍然无法记录错误。有什么问题?
app.module.ts
providers: [
{ provide: ErrorHandler, useClass: MyErrorHandler }
]
我的错误处理程序.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
}
}
sample-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
【问题讨论】:
标签: angular error-handling observable