一、异常常用属性
属性名 | 描述信息 |
name | 错误名 |
number | 错误号 |
description | 描述 |
message | 错误信息 |
二、常见的异常
异常类型 | 描述信息 |
TypeError | 当遇到一个意外的类型时引发该异常对象,如未声明的变量。 |
SyntaxError | 在解析js代码时,其中的语法错误引发该异常对象。 |
ReferenceError | 使用一个无效的引用时引发该异常对象。 |
EvalError | 在错误的调用eval函数时引发该异常对象。 |
RangeError | 在一个数字型变量的值超出了其范围时引发该异常对象。 |
URIError | 在错误的使用encodeURI或者decodeURI函数时引发该异常对象。 |
三、实例代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>JavaScript中的异常处理 </TITLE> <SCRIPT LANGUAGE="JavaScript"> // 异常对象常见的四种属性 try{ alert(result); }catch(e){ alert("异常名字:"+e.name); alert("异常号:"+e.number); alert("异常的描述信息:"+e.description); alert("异常的错误信息:"+e.message); } // throw方式抛出异常 // 要求用户输入一个大于等于0到小于等于10之间的数, // 如果输入的值小于0,提示输入的值不能小于0; // 如果输入的值大于10,提示输入的值不能大于10; // 如果输入的值不是数值类型,提示请输入数字。 try{ var result=prompt("请用户输入一个0到10之间的数字"); if(result<0){ throw new Error("-1","输入的值不能小于0"); }else if(result>10){ throw new Error("-2","输入的值不能大于10"); }else if(isNaN(result)){ throw new Error("-3","您输入的不是数字,请输入一个0到10之间的数字"); }else{ alert("您输入的数值是:"+result); } }catch(e){ alert(e.name); alert(e.number); alert(e.description); alert(e.message); }finally{ //执行特殊的语句,如无论是否发生异常,都需要执行的语句 alert("this is finally!"); } function addMethod(a,b){ if(arguments.length!=2){ throw new Error("-1","该方法的参数个数不等于2,请输入两个参数!"); }else{ return a+b; } return eval(a+b); } try{ var a=; var b=; var result = addMethod(a,b); alert("结果为:"+result); }catch(e){ alert("异常名字为:"+e.name); alert("异常号为:"+e.number); alert("异常消息为:"+e.message); alert("异常说明为:"+e.description); } onerror = handlerError; // 句柄返回true,浏览器不会提示自带的错误信息 // 句柄返回false,浏览器会触发自带的错误信息。 // IE浏览器的左下角提示一个感叹号的标志,火狐浏览器右下角出现脚本错误的信息。 function handlerError(message,url,line){ var text="错误消息为:"+message+"\n"; text+="发生的url地址为:"+url+"\n"; text+="错误行号为:"+line+"\n"; alert(text); return falae; } alert(abc); </SCRIPT> </HEAD> <BODY> </BODY> </HTML>