JavaScript有两种在网页中捕获错误的方法:
1、使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
try...catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
语法:
try
{
//在此运行代码
}
catch(err)
{
//在此处理错误
}
2、使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)
使用 onerror 事件是一种老式的标准的在网页中捕获 Javascript 错误的方法。
只要页面中出现脚本错误,就会产生 onerror 事件。
如果需要利用 onerror 事件,就必须创建一个处理错误的函数。你可以把这个函数叫作 onerror 事件处理器 (onerror event handler)。这个事件处理器使用三个参数来调用:msg(错误消息)、url(发生错误的页面的 url)、line(发生错误的代码行)。
语法:
οnerrοr=handleErrFunction handleErr(msg,url,line)
{
//Handle the error here
return true or false;
}
浏览器是否显示标准的错误消息,取决于 onerror 的返回值。如果返回值为 false,则在控制台 (JavaScript console) 中显示错误消息。反之则不会。
示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test01.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
onerror = handleErr
var txt1 = "";
var txt2 = "";
function message1(){
try{
alter("Welcome to lhg blog !");//alter-->alert
}
catch(err){
txt1="本页中存在错误。\n\n";
txt1+="错误描述:" + err.description + "\n\n";
txt1+="点击”确定“继续查看本页。\n\n";
txt1+="点击”取消“转到百度。\n\n"
//alert(txt);
if(!confirm(txt1)){
document.location.href="www.baidu.com";
}
}
}
function handleErr(mag,url,line){
txt2="本页中存在错误。\n\n";
txt2+="错误:"+msg+"\n";
txt2+="URL:"+url+"\n";
txt2+="line:"+line+"\n";
txt2+="点击”确定“继续。\n\n";
alert(txt2);
return true;
}
function message2(){
alter("Welcome to lhg blog !");
}
</script>
</head>
<body>
This is test page. <br>
<input type="button" value="使用try...catch查看消息" οnclick="message1()" /></br></br>
<input type="button" value="使用onerror查看消息" οnclick="message2()" /></br></br>
</body>
</html>