我为我的 Angular 应用程序中的错误创建了全局处理程序:
export class GlobalErrorHandlerComponent implements ErrorHandler {
constructor(private injector: Injector) { }
handleError(error: Error) {
const router = this.injector.get(Router);
console.log(error.name);
console.log(router.url);
console.log(error.message);
const route = this.injector.get(ActivatedRoute);
var snapshot = route.snapshot;
console.log(snapshot.routeConfig.component.name); //unlucky it doesnt work :(
}
}
我得到了统计所需的所有数据,但我也想要引起错误的组件名称,我尝试了很多东西 - 其中一个有一定意义 - 不幸的是不起作用。 有什么办法可以获取这些信息吗?
最佳答案
据我所知,通过 error.stack
查看堆栈跟踪是查看哪个组件(以及哪一行)抛出错误的唯一方法。
但要小心,似乎 error.stack
并不存在于所有浏览器上,因此您可能需要使用类似的东西来避免任何双重错误:
try {
console.log(error.stack);
} catch {
console.log("Your browser does not support printing the stackTrace");
// Nothing here, code contiues without throwing error.
}
关于angular - 如何获取导致 Angular 5 错误的组件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51381836/