使用JS检测所有JS错误
detect all JS errors, using JS
我知道以前可能有人问过这个问题,但我找不到哪里:
我知道你可以使用扩展插件来检测JS错误,但有没有任何方法可以使用JavaScript检测所有错误,并在出现错误时显示警报?
在浏览器中定义window.onerror
函数。在连接到具有process.on()
的uncaughtException
事件的节点中。
如果您需要捕获所有错误,例如在规范运行程序或console.log/debugging实现中,则只应使用ONLY。否则,你会发现自己身处一个受伤的世界,试图追踪奇怪的行为。正如一些人所建议的那样,在正常的日常代码中,try / catch
块是处理错误/异常的正确和最佳方式。
关于前一种情况的参考,请参阅this(关于浏览器中的window.error)和this(关于节点中的uncaughtException)。示例:
浏览器
window.onerror = function(error) {
// do something clever here
alert(error); // do NOT do this for real!
};
Node.js
process.on('uncaughtException', function(error) {
// do something clever here
alert(error); // do NOT do this for real!
});
对于浏览器中的JS
<!DOCTYPE html>
<html lang="en">
<head>
<script>
var lastErr;
function errHand(e) {
lastErr = e;
switch (e.target.nodeName) {
case 'SCRIPT':
alert('script not found: ' + e.srcElement.src);
break;
case 'LINK':
alert('css not found: ' + e.srcElement.href);
}
return false;
}
window.onerror = function (msg, url, lineNo, columnNo, error) {
alert(msg + ' - ' + url + ' - ' + lineNo + ' - ' + columnNo);
return false;
}
</script>
<script src="http://22.com/k.js" onerror="errHand(event)"></script>
<link rel="stylesheet" href="http://22.com/k.css" onerror="errHand(event)" type="text/css" />
</head>
<body>
<script>
not_exist_function();
</script>
</body>
</html>
- 这适用于仅在同源主机环境中跟踪错误的附加js文件
- 对于像Ajax/WebSocket这样的请求错误处理,最好使用它们的Bulit-In函数
- 控制台功能覆盖不适用于此时读取自动生成的浏览器错误日志以及最新的浏览器更新
对于NodeJS
process.on('uncaughtException', function (err) {
console.error('uncaughtException:'n' + err.stack + ''n');
})
在代码顶部同时使用它们
相关文章:
- Node.js错误“;ReferenceError:全局未定义“;在从0.10.2更新到0.12.2之后
- 最短路径算法js错误
- Modx数据包管理器ext-all.js错误
- Dropzone引导JS错误
- JS错误导致WordPress插件无法工作
- Date.js错误地分析了ISO 8601 UTC日期
- Ember.js错误“;无法读取属性'容器'未定义的“;使用液体火时
- React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
- 获取意外的令牌ILLEGAL JS错误
- 使用动画时出现反应JS错误
- IE8 中未知的 JS 错误
- Angular JS错误:仅在IE 10和IE 11中出现[$rootScope:infdig]
- Meteor JS错误”;ReferenceError:X未定义”;
- Node.js错误:参数太多上传批量数据时出错
- CKEditor选项startupMode导致js错误
- 在出现JS错误的页面上运行外部Javascript
- angular js:错误:$没有在http文章中定义
- 使用JS检测所有JS错误
- Firebug不再显示JS错误
- require.js错误(topojson未加载)