在try里面发生错误,不会执行错误后的try里面的代码。
try{
console.log('a');
console.log(b);
console.log('c');
}catch(e) {
console.log(e.name + " : " + e.message);
}
console.log('d');
//执行结果
//a
//ReferenceError : b is not defined
//d
上述代码中console.log(b)
出错,try代码块的后续代码不会继续执行,但是整体JS代码不会抛出错误,继续下面的代码执行。且若try中发生错误,就会执行catch中的语句,e
即error,包含了错误名称(e.name
)和错误信息(e.message
)。当然,若try中没有发生错误,catch中的语句就不会执行。
即catch用于捕捉try中的错误,并可以选择是否返回错误信息。
catch(e)
中的e
只是形参,可以任意修改变量名,系统会将错误对象传到形参中,此错误对象只有两个信息,.name
和.message
。
1.EvalError: eval()的使用于定义不一致;
2.RangeError: 数值越界;
3.ReferenceError: 非法或不能识别的引用数值;
一般未经声明就使用变量,会报ReferenceError
4.SyntaxError: 发生语法解析错误;
5.TypeError: 操作数类型错误;
6.URIError: URI处理函数使用不当。