我想在Javascript中处理运行时错误。但是我遇到了一个问题。当我以前使用window.onerror函数时,我可以得到异常错误。但是我在任何已定义的函数中定义了一个未定义的函数。我看不出任何异常。我在哪里做错了?
这是我使用的代码;
# pods "EXAMPLE" was not valid:
# * spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds`
} window.onerror = errorHandler;
index.html代码;
function errorHandler(message, url, line, column, error) {
debugger
var message = [
'Message: ' + message,
'\nURL: ' + url,
'\nLine: ' + line,
'\nColumn: ' + column,
];
exceptionTest()函数在我的代码中定义。但测试功能未定义。我想得到关于该未定义函数的错误。我怎样才能做到这一点 ?它只显示浏览器的控制台窗口。 谢谢你的建议。
答案 0 :(得分:0)
您可以使用try catch块来捕获这些错误:
try{
test();
} catch(error){
console.log("Following error happened:", error);
}
答案 1 :(得分:0)
好吧,我试过下面的用例,其中 onerror 取自this MDN Link
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body onload="Test1();">
<script type="text/javascript">
function Test1() {
Test2();
}
window.onerror = function (msg, url, lineNo, columnNo, error) {
var string = msg.toLowerCase();
var substring = "script error";
if (string.indexOf(substring) > -1) {
alert('Script Error: See Browser Console for Detail');
} else {
var message = [
'Message: ' + msg,
'URL: ' + url,
'Line: ' + lineNo,
'Column: ' + columnNo,
'Error object: ' + JSON.stringify(error)
].join(' - ');
//uncomment below line to see the message in console.
//console.log(message);
alert(message);
}
return false;
};
</script>
</body>
</html>
它显示错误位置的正确消息,包括行号和列号。
登录到控制台时的错误信息如下:
DOM7011: The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
HTMLPage1.html
HTML1300: Navigation occurred.
HTMLPage1.html
SCRIPT5009: 'Test2' is undefined
HTMLPage1.html (12,13)
Message: 'Test2' is undefined - URL: file:Desktop/HTMLPage1.html - Line: 12 - Column: 13 - Error object: undefined
HTMLPage1.html (29,17)