首页 > 解决方案 > 如何识别哪个组件/服务抛出了错误,同时使用全局 HTTP 拦截器作为 Angular 中的错误处理程序?

问题描述

我正在使用 HTTPInterceptor 来处理 Angular 应用程序中发生的任何错误。一旦发生错误,它就会被这个拦截器抛出并处理。但是,一旦向拦截器抛出错误,我想确定哪个组件或服务抛出了该错误。

我期望以下,如果 main.service.ts 是发生错误的服务,我想在我的 HTTPInterceptor 类中获取名称“main.service.ts”。

标签: angularfrontendangular-http-interceptors

解决方案


我没有得到引发错误的组件,但是我们可以确定哪个方法引发了错误。我们需要一个名为“extract-stack”的包

npm install extract-stack

然后,获取函数名称如下。即使在生产模式下,Angular 也不会更改函数名称,因此我们可以捕获发生错误的方法,如 -:

var function_name = extractStack.lines(errors)[0].split('.')[1].split(' ')[0];


推荐阅读