[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{

}

posted @ 2013-04-23 13:31  stephenykk  阅读(222)  评论(0编辑  收藏  举报