javascript提供一套异常处理机制,异常是干扰程序正常流程的非正常的事故。但并非是完全出乎意料。换言之,就是事故可以预判并处理的。当遇到异常时,应该抛出并处理,而抛出异常的关键字就是throw,被抛出的异常就是Exception。
var add = function(a,b){ if (typeof a !=="number" || typeof b!=="number"){ throw{ name:"TypeErrow", message:"请填写数字!" } } return a+b; }
根据上面判断,当遇到预期的异常时,throw语句将抛出异常Exception对象,该对象包含一个异常类型name属性和一描述性的message属性,当然,这些都是预先定义的,还可以定义其它属性。该Exception对象将被传递给try语句的catch从句:
var try_it = function(){ try{ add("notnumber") }catch(e){ document.writeln(e.name +":"+e.message) } } try_it(); // TypeErrow:请填写数字!
如果try语句抛出一个异常,将被catch语句捕获并处理。需要说明的是,一个try语句只能有一个捕获异常的catch语句。