angular - 如何获取导致 Angular 5 错误的组件名称

标签 angular angular5

我为我的 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 :(
  }
}

我得到了统计所需的所有数据,但我也想要引起错误的组件名称,我尝试了很多东西 - 其中一个有一定意义 - 不幸的是不起作用。 有什么办法可以获取这些信息吗?

编辑:示例日志 enter image description here

示例日志 v2 :) enter image description here

最佳答案

据我所知,通过 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/

相关文章:

javascript - 在 Angular 5 中,如何对点击事件进行分组并仅在用户停止点击时发出一次

html - Angular 插值的 span 标签绑定(bind)问题

javascript - 如何让浏览器知道用户已经浏览过 Ioinic 中的特定页面

Angular Material 5 - 如何在 mat-datepicker 中自定义日期

angular - 如何在 Angular 8 中使用 console.log?

Angular/Express/Passport - 使用 Google : No 'Access-Control-Allow-Origin 进行身份验证

angular - ng 命令抛出内存不足错误 [致命进程 OOM 内存不足,无法创建隔离]

Angular 5 - react 形式

未触发 Angular 4 动画, "ng-animate-queued"类已添加到元素

javascript - 套接字 io 为同一个客户端发出多次