모든 HTTP 요청에 대해 추가 코드를 작성할 필요없이 HTTP 요청이 실패하면 사용자에게 알려야합니다. 각도 4의 HTTP 오류에 대한 중앙 집중식 처리
나는 각 2 프로토 타입했다 :@Injectable()
export class MyErrorHandler extends ErrorHandler {
constructor() {
super(false);
}
handleError(error: any) {
this.tellUser(error);
super.handleError(error);
}
tellUser(error: any) {
// dig for the root cause
if (error.rejection) {
error = error.rejection;
}
if (error instanceof ViewWrappedError) {
error = error.originalError;
}
let message;
if (error instanceof Response) {
// TODO: localize and display nicely
const messages = {
0: "Could not connect to server",
}
message = messages[error.status] || ("The server reported a system error (HTTP " + error.status + ")");
} else {
message = "A system error occurred.";
}
console.warn(message);
}
}
을하지만 ViewWrappedError는 HttpResponse에에 toString을 호출하는 덕분에,
export function viewWrappedDebugError(err: any, context: DebugContext): Error {
if (!(err instanceof Error)) {
// errors that are not Error instances don't have a stack,
// so it is ok to wrap them into a new Error object...
err = new Error(err.toString());
}
_addDebugContext(err, context);
return err;
}
하는 각도 4에서 대체되었습니다, 그것을 만드는 상태 코드를 쿼리하기가 어렵습니다 ...
중앙 집중식 오류 처리를 위해 잘 지원되는 공개 API를 제공하기를 기대합니다. 오류 메시지를 구문 분석하는 것 외에 HTTP 오류를 중앙에서 처리 할 수있는 방법이 있습니까?
업데이트 : 구성 요소가 중앙 집중식 오류 처리를 쉽게 무시할 수있는 경우를 선호합니다.