我为我的角度应用程序中的错误创建了全局处理程序:
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 :(
}
我获得了统计所需的所有数据,但是我也想要引起错误的组件名称,我尝试了很多事情-其中有些是有意义的-不幸的是不起作用。 有什么办法获取该信息?
答案 0 :(得分:2)
据我所知,通过error.stack
查看stacktrace是查看哪个组件(和哪一行)引发错误的唯一方法。
请注意,似乎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.
}