JS中异常捕获try-catch语句

ECMA-262第三版引入了try-catch语句,作为JS中处理异常的标准方式。基本的语法如下所示

try{
    //可能导致错误的代码
} catch(error){
    //在错误发生时的处理方式
}

即要把所有可能抛出错误的代码都放在try语句块中,如果发生异常,catch语句块就会接收到一个包含错误信息的对象,即使不需要使用这个对象,也必须声明它,如上述代码中的error一样。

1. finally子句

除了基本的try-catch语句外,还有finally子句。若加上finally子句,无论是否出现异常错误,无论使用什么代码(即使使用return语句),都不影响finally子句的执行,这是非常重要的一点。

function testFinally(){
    try{
        return 2;
    } catch(error){
        return 1;
    } finnaly{
        return 0;
    }
}

执行上述函数,不会返回2或者1,永远都是返回0。

 

如果提供finally子句,则catch子句就成了可选的(catch或finally有一个即可),但IE7或更早的版本中,如果没有catch子句,则finally中的代码不会执行。

 

2. 错误类型

ECMA-262定义了下列7中错误类型:Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError。

其中Error是基类型,其他错误类型都继承自该类型,因此所有错误类型共享一组相同的属性。Error类型的错误很少见,一般用于开发人员自定义错误。

 

 

参考《JavaScript高级程序设计 第三版》

如有纰漏,还望指出。

你可能感兴趣的:(JavaScript)