如何获取导致角度5错误的组件名称

时间:2018-07-17 12:49:42

标签: angular angular5

我为我的角度应用程序中的错误创建了全局处理程序:

    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 :(
      }

我获得了统计所需的所有数据,但是我也想要引起错误的组件名称,我尝试了很多事情-其中有些是有意义的-不幸的是不起作用。 有什么办法获取该信息?

编辑:示例日志 enter image description here

示例日志第2版:)enter image description here

1 个答案:

答案 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.
}