JavaScript--异常处理
2010年06月16日
有两种在网页中捕获错误的方法:
??使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
??使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 浏览器不支持 onerror 事件。
try...catch try
{
//在此运行代码
}
catch(err) //err是用户自定义的变量,err的类型取决于throw语句
{
//在此处理错误
}
注意:try...catch 使用小写字母。大写字母会出错。
try
{
throw "this is an exception"; //这里抛出一个字符串异常
//用户可以抛出的四类异常:字符串、整数、布尔值、对象
}
catch(err) //这里err是一个字符串
{
alert(err); //显示:this is an exception
alert(err.name); //显示:undefined
alert(err.name); //显示:undefined
} try
{
fff(); //这里将导致异常抛出
}
catch(err) //这里err是一个Error类异常对象
{
alert(err); //显示:[object error] 等同于err.toString()
alert(err.toString()); //显示:[object error]
alert(err.name); //显示:TypeError
alert(err.name); //显示:缺少对象
} onerror 事件 ??使用 onerror 事件是一种老式的标准的在网页中捕获 Javascript 错误的方法。
??只要页面中出现脚本错误,就会产生 onerror 事件。
??如果需要利用 onerror 事件,就必须创建一个处理错误的函数。
??错误处理函数使用三个参数来调用:msg错误消息、url(发生错误页面的url)、line(发生错误的代码行)。
??浏览器是否显示标准的错误消息,取决于错误处理函数的返回值。
??如果错误处理函数返回值为 false,则在控制台 (JavaScript console) 中显示错误消息。反之则不会。
throw语句 throw 声明的作用是创建 exception(异常或错误)。
throw (exception) ??exception 可以是字符串、整数、逻辑值或者对象。
??使用小写字母编写 throw。使用大写字母会出错! Error 在JavaScript中,Error类表示一个异常,是其他异常类的父类。Error类的构造函数: 两个属性
??name:表示异常的类型
??message:表示异常详细信息字符串
JavaScript还预定义了其他一些异常类,这些类都是Error类的子类: 1.EvalError //当不正确使用eval函数时,会抛出该类的一个实例
2.RangeError //当数值超出合法的数值范围时,会抛出该类的一个实例
3.ReferenceError //当读取一个不存在的变量的值时,会抛出该类的一个实例
4.SyntaxError //当JavaScript中出现语法错误时,会抛出该类的一个实例
5.TypeError //当JavaScript中类型不符合要求时,会抛出该类的一个实例
6.URIError //当字符串不符合编码或解码要求时,会抛出该类的一个实例