在我的Angular 2应用程序中,我有一个解决方案,它会尝试xhr并在失败时抛出自定义错误:
install.packages("Matrix")
install.packages("quanteda")
return this.service.getProduct (id)
.catch (err => Observable.throw(new MyError(err.message, route, 500, err)));
只是MyError
的扩展名:
Error
我的全局错误处理程序收到export class MyError extends Error {
constructor(message, routeSnapshot, code, err) {
super(message);
this.name = 'MyError';
this.routeSnapshot = routeSnapshot;
this.code = code;
this.err = err;
}
}
而不是ZoneAwareError
的实例:
MyError
export class MyErrorHandler implements ErrorHandler {
handleError(error) {
console.log('handling err', error);
// this prints a ZoneAwareError on the console
}
}
真的应该被error
包裹吗?如何打开它以取回ZoneAwareError
?依赖MyError
财产是否安全? (因为我可以看到error.rejection
)。
===编辑:
好的,我刚刚发现Angular在MyError
的不同子类型中包含错误,而不仅仅是Error
。到目前为止,我有这个功能来打开它们,但感觉有点hacky:
ZoneAwareError
答案 0 :(得分:4)
你可以看到如何在Angular中完成展开: angular/modules/@angular/core/src/error_handler.ts,但他们似乎无法以任何方式处理geom_area()
(这非常有用)所以我之前使用以下内容解缠:
rejection
zone.js中的