1
Angular (v2.4.3) 사용자 지정 오류 처리기를 가장 간단하게 구현했지만 여전히 오류를 기록 할 수 없습니다. 무엇이 잘못 될 수 있습니까?각도 2 오류가 사용자 지정 오류 처리기에 도착하지 않음
는
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());
}
는 오류 throwed (오류가 발생하는 것을 시도) app.module.ts 서비스 중이라면 MyErrorHandler에 도착하지 마십시오. 무엇이 잘못 될 수 있습니까?
이 중요하지만 콘솔에서 나는 또한이 같은 것을 가지고 있다면 나도 몰라 :
POST http://path/to/api 422 // logged by zone.js
감사를 처리
.catch
방법을 제거해야합니다. 불행히도 여전히 작동하지 않습니다. –'.catch' 메서드를 사용하여 다른 핸들러를 지정했기 때문에 그렇게 생각합니다. 제거하면 사용자 지정 오류 처리기가 – coderek
이라고하는 것을 볼 수 있습니다. 그렇습니다. 고맙습니다! 해결책으로 표시 할 수 있도록 답변으로 게시 할 수 있습니까? –