try...catch
Error 对象属性
name:设置或返回错误名
message:设置或返回错误消息(一条字符串)
error 的 name 属性可返回六个不同的值
EvalError:已在 eval() 函数中发生的错误 RangeError:已发生超出数字范围的错误
ReferenceError:已发生非法引用 SyntaxError:已发生语法错
TypeError:已发生类型错误 URIError:在 encodeURI() 中已发生的错误
try {
let a = 15;
console.log(a);
letb = 15;
console.log(b);
} catch (err) {
console.log('发现错误');
//ReferenceError
console.log(err.name);//ReferenceError
console.log(err.message);//b is not defined
console.log(err.stack);
}finally {
// 无论结果如何都执行的代码块
}
throw运算符
let age=15;
let ageErr=new Error();
try{
if(age<18){
throw new TypeError('年龄验证不通过');
}else{
console.log('年龄验证通过');
}
}catch(err){
console.log(error.name);
console.log(error.message);
}
finally {
// 无论结果如何都执行的代码块
}