Error handling 在Aurelia/Bluebird promise中如何在应用程序启动之前/期间处理全局错误
我正在将Raygun错误处理添加到我的Aurelia应用程序中,刚刚意识到我无法捕获在应用程序安装过程中发生的错误(例如在Error handling 在Aurelia/Bluebird promise中如何在应用程序启动之前/期间处理全局错误,error-handling,promise,aurelia,bluebird,raygun.io,Error Handling,Promise,Aurelia,Bluebird,Raygun.io,我正在将Raygun错误处理添加到我的Aurelia应用程序中,刚刚意识到我无法捕获在应用程序安装过程中发生的错误(例如在main.configure) 下面的代码根本不使用Raygun,只是尝试捕获所有错误: index.html <!DOCTYPE html> <html> <head> <!-- ... --> </head> <body aurelia-app="main"> <script src=
main.configure
)
下面的代码根本不使用Raygun,只是尝试捕获所有错误:
index.html
<!DOCTYPE html>
<html>
<head>
<!-- ... -->
</head>
<body aurelia-app="main">
<script src="build/res/vendor-bundle.js" data-main="aurelia-bootstrapper"></script>
<script type="text/javascript">
window.onerror = function() {
console.info('arguments:', arguments);
}
</script>
</body>
</html>
。。。我猜它来自蓝鸟
如何可靠地捕获应用程序中的所有错误
以下是记录的错误的屏幕截图:
导致上述vendor bundle.js:3411
tryCatcher
(stacktrace中的第一个条目)导致实际错误行app bundle.js:72:9
blah.this=3
- 蓝鸟
和未处理的弹射
在此场景中不会被激发拒绝处理
未处理的喷射
和拒绝处理
,它们在我上面的场景中没有被激发。嗯,奇怪。在加载捆绑包之前,可能需要设置窗口.onerror
处理程序?在捆绑包加载程序之前移动设置onerror
处理程序的脚本也不起作用。我还检查了onerror
处理程序在错误发生之前是否已实际安装。
// ...
export function configure(aurelia: Aurelia) {
aurelia.use
.standardConfiguration()
.feature('resources');
// ...
blah.this = 3; // <-- Force some error...
}
function tryCatcher() {
try {
var target = tryCatchTarget;
tryCatchTarget = null;
return target.apply(this, arguments);
} catch (e) {
errorObj.e = e;
return errorObj;
}
}