选自《JavaScript:The Good Parts》:
异常是干扰程序的正常流程的不正常,(但并非完全是出乎意料)的事故。当发现这样的事故时,你的程序应该抛出一个异常:
var add=function(a,b){
if(typeof a !=='number'||typeof b!=='number'){
throw{
name:'TypeError',
message:'add needs numbers'};
}
return a+b;
}
throw 语句中断函数的执行。它应该抛出一个exception对象,该对象包含一个用来识别异常类型的name属性和一个描述性的message属性。你也可以添加其他的属性。
该exception对象将被传递到一个try语句的catch从句中:
var try_it=function(){
try{
add("seven");
}catch(e){
document.writenln(e.name+':'+e.message);
}
}
try_it();
如果try代码块内抛出了一个异常,控制权就会跳转到它的catch中
一个try语句只会有一个捕获所有异常的catch代码块。如果你的处理手段取决于异常的类型,那么异常处理器必须检查异常对象的name属性来确定异常的类型。