在自定义错误处理程序的Angular2中,如何使用.ts文件中的行号访问错误堆栈跟踪

在自定义错误处理程序的Angular2中,如何使用.ts文件中的行号访问错误堆栈跟踪,angular,Angular,我尝试在我的应用程序中实现一个自定义错误处理程序,但不知道如何访问原始ErrorHandler堆栈跟踪的输出。为什么我需要原创?原始ErrorHandler打印到console的堆栈跟踪引用typescript.ts文件中的行号(至少对于我的应用程序文件)。自定义ErrorHandler中可用的堆栈跟踪引用javascript.js文件中的行号 Angular2应用程序示例如下: 文件main.ts 从'angular2/platform/browser'导入{bootstrap}; 从“/Ap

我尝试在我的应用程序中实现一个自定义错误处理程序,但不知道如何访问原始ErrorHandler堆栈跟踪的输出。为什么我需要原创?原始ErrorHandler打印到console的堆栈跟踪引用typescript.ts文件中的行号(至少对于我的应用程序文件)。自定义ErrorHandler中可用的堆栈跟踪引用javascript.js文件中的行号

Angular2应用程序示例如下:

文件main.ts

从'angular2/platform/browser'导入{bootstrap};
从“/App”导入{App};
从“angular2/core”导入{ExceptionHandler,提供};
类MyExceptionHandler{
调用(错误,stackTrace=null,reason=null){
让msg=ExceptionHandler.ExceptionString(错误);
控制台日志(msg);
console.log('Message:'+error.Message);
log('Stack trace:'+stackTrace);
}
}
引导(App,[provide(ExceptionHandler,{useClass:MyExceptionHandler}]);
//引导(应用程序,[]);
文件app.ts

从'angular2/core'导入{Component}
@组成部分({
选择器:“我的应用程序”,
提供者:[],
模板:`Hello{{name}}`,
指令:[]
})
导出类应用程序{
构造函数(){
this.name='Angular2';
设arr=['1','2'];
设val=arr[4].id;
}
}
App constructor的最后一条语句按预期抛出错误。我的自定义错误处理程序将一些内容打印到控制台,但堆栈跟踪只包含javascript文件中的行号

如果您对使用自定义ExceptionHandler的引导进行注释,并且只执行原始引导和检查控制台,那么将有一个带有TypeScript文件行号的堆栈跟踪。如下所示(附录ts:18)

我想在自定义处理程序中以某种方式访问此输出,并将其发送到其他地方,而不是打印到控制台,而是使用.ts文件中的行号。

import{ExceptionHandler,provide}from“angular2/core”;
导出接口IEExceptionHandler{
调用(异常:任意,stackTrace?:任意,原因?:字符串):无效;
}
导出类MyCutOmeExceptionHandler实现IEExceptionHandler{
调用(异常:任意,堆栈跟踪:任意,原因:字符串):void{
警报(例外);
让msg=ExceptionHandler.exceptionToString(异常);
控制台日志(“micronyks”);
控制台日志(msg);
console.log('Message:--->N'+exception.Message);
log('Stack trace:--->N'+stackTrace);
}
}
@组成部分({
选择器:“我的应用程序”,
模板:`
主要成分
`,
指令:[],
})
导出类ParentCmp{
构造函数(){
this.name='Angular2';
设arr=['1','2'];
设val=arr[4].id;
}
}
引导(ParentCmp,[provide(ExceptionHandler,{useClass:MyCutomExceptionHandler})];

console中打印的输出不包含来自typescript文件的行号,只包含来自javascript文件的行号-它基本上与我在原始应用程序中获得的输出相同。它显示了相对正确的输出。在控制台中检查消息---->N行,在那里,在最右边检查行号。。。不是吗?请查看我电脑上应用程序的两个输出的比较-差异为红色。第一个包含导致错误的typescript文件中的行号,第二个仅来自javascript。看这个。它显示了相对接近的行号。嗨。。我有同样的问题!运气好吗?
angular2.dev.js:23501 TypeError: Cannot read property 'id' of undefined
    at new App (app.ts:18)