JavaScript错误/异常处理
JavaScript Try...Catch 语句
介绍:JavaScript中的try...carch语句的作用和C#中的try...catch语句的作用一样,
都是捕获并处理异常。
语法:
try
{
//在此运行代码
}
catch(err)
{
//在此处理错误
}
例子:
<html> <head> <script type="text/javascript"> var txt="" function message() { try { adddlert("Welcome guest!") } catch(err) { txt="There was an error on this page.\n\n" txt+="Click OK to continue viewing this page,\n" txt+="or Cancel to return to the home page.\n\n" if(!confirm(txt)) { document.location.href="http:......." } } } </script> </head> <body> <input type="button" value="View message" onclick="message()" /> </body> </html>
上面的例子会显示一个确认框,让用户来选择在发生错误时点击确定按钮来继续浏览网页,还是点击取消按钮来访问其他网页。
JavaScript Throw 声明
介绍:throw 声明的作用是创建 exception(异常或错误)。
throw 声明的作用是创建 exception(异常)。你可以把这个声明与 try...catch 声明配合使用,以达到控制
程序流并产生精确错误消息的目的。
语法:
throw(exception)
exception 可以是字符串、整数、逻辑值或者对象。(throw一定要小写)
例子:
<html> <body> <script type="text/javascript"> var x=prompt("请输入 0 至 10 之间的数:","") try { if(x>10) throw "Err1" else if(x<0) throw "Err2" else if(isNaN(x)) throw "Err3" } catch(er) { if(er=="Err1") alert("错误!该值太大!") if(er == "Err2") alert("错误!该值太小!") if(er == "Err3") alert("错误!该值不是数字!") } </script> </body> </html>
上面的的例子的作用是测定变量 x 的值。如果 x 的值大于 10 或者小于 0或不是数字,错误就会被抛出 (throw)。这个错误被 catch 的参数捕获后,就会显示出自定义的出错信息。
JavaScript onerror 事件
介绍:使用 onerror 事件是一种老式的标准的在网页中捕获 Javascript 错误的方法。
chrome、opera、safari 浏览器不支持
只要页面中出现脚本错误,就会产生 onerror 事件。
如果需要利用 onerror 事件,就必须创建一个处理错误的函数。你可以把这个函数叫作 onerror 事件处理器 (onerror event handler)。这个事件处理器使用三个参
数来调用:msg(错误消息)、url(发生错误的页面的 url)、line(发生错误的代码行)。
语法:
onerror=handleErrfunction handleErr(msg,url,l)
{
//Handle the error here
return true or false
}
例子:
<html> <head> <script type="text/javascript"> onerror=handleErr var txt="" function handleErr(msg,url,l) { txt="There was an error on this page.\n\n" txt+="Error: " + msg + "\n" txt+="URL: " + url + "\n" txt+="Line: " + l + "\n\n" txt+="Click OK to continue.\n\n" alert(txt) return true } function message() { adddlert("Welcome guest!") } </script> </head> <body> <input type="button" value="View message" onclick="message()" /> </body> </html>