js你不是的那些基础问题-错误处理机制
1 try...catch 结构
一旦发生错误,程序就中止执行了。JavaScript 提供了try...catch
结构,
允许对错误进行处理,选择是否往下执行。
try {
throw new Error('出错了!');
} catch (e) {
console.log(e.name + ": " + e.message);
console.log(e.stack);
}
// Error: 出错了!
// at <anonymous>:3:9
// ...
2 finally 代码块
try...catch
结构允许在最后添加一个finally
代码块,
表示不管是否出现错误,都必需在最后运行的语句。
function cleansUp() {
try {
throw new Error('出错了……');
console.log('此行不会执行');
} finally {
console.log('完成清理工作');
}
}
cleansUp()
// 完成清理工作
// Uncaught Error: 出错了……
// at cleansUp (<anonymous>:3:11)
// at <anonymous>:10:1
3 throw 语句
throw
语句的作用是手动中断程序执行,抛出一个错误。
if (x <= 0) {
throw new Error('x 必须为正数');
}
// Uncaught ReferenceError: x is not defined
上面代码中,如果变量x
小于等于0
,就手动抛出一个错误,
告诉用户x
的值不正确,整个程序就会在这里中断执行。
可以看到,throw
抛出的错误就是它的参数,这里是一个Error
实例。
throw
也可以抛出自定义错误。
function UserError(message) {
this.message = message || '默认信息';
this.name = 'UserError';
}
throw new UserError('出错了!');
// Uncaught UserError {message: "出错了!", name: "UserError"}
文章内容转自 阮一峰老师 JavaScript教程 https://wangdoc.com/javascript/index.html