[javascript权威指南笔记02]Throw语句和异常处理机制try/catch/finally
throw expression ,expression可以是任意类型 数字或错误信息的字符串等...
function factoria(x){
//如果输入的参数非法 则抛出一个异常
if(x<0) throw new Error("x不能是负数"); //这里没有catch子句,将沿着词法结构向上查找 异常处理程序
//参数合法 则计算出一个值并返回这个值
for(var f=1;x>1;f*=x,x--) /*empty*/ ;
return f;
}
当抛出异常时,js解释器会立即停止当前正在执行的的逻辑,并跳转到最近的异常处理程序
try/catch/finally异常处理机制,try从句包含可能会发生异常的代码块,catch从句紧跟在try语句后,当try发生异常时,执行catch内的代码逻辑,不管try语句是否发生异常,finally内的代码总是会执行。
catch/finally两个从句是可选的。
try从句中的异常要么是用throw语句显示抛出的,要么是调用方法时间接抛出的
如:
try{
}
catch(e){ //e 局部变量 用来获得对Error对象或者其他抛出值的引用
}
finally{
}