JavaScript异常
try-catch finally
try 必须跟catch或者finally。
执行顺序案例1:
try{
try{
throw new Error('opps');//出现异常需要跳异常处理,内部没有catch,跳外部。
}
finally{
console.log("finally");//跳外部异常前先执行"finally"
}
}
catch(ex){
console.error("outer",ex.message);//跳异常处理,输出outer 后 输出opps
}
执行顺序:finally outer opps
执行顺序案例2:
try{
try{
throw new Error('opps');//出现异常需要跳异常处理,内部catch,。
}
catch(ex){
console.error("inner",ex.message);//跳异常 inner opps
}
finally{
console.log("finally"); //执行"finally"
}
}
catch(ex){
console.error("outer",ex.message);//异常处理,不输出
}
执行顺序:inner opps finally
执行顺序案例3:
try{
try{
throw new Error('opps'); //出现异常需要跳异常处理,内部catch。
}
catch(ex){
console.error("inner",ex.message);//跳异常 inner opps
throw ex;//又抛出异常
}
finally{
console.log("finally"); //跳异常先执行"finally"
}
}
catch(ex){
console.error("outer",ex.message);//异常处理,输出outer opps
}
执行顺序:inner opps finallyouter opps
总结:先执行内部的try catch finally,如果有异常就执行外部异常。