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

posted @ 2019-08-14 16:25  WernerWu  阅读(90)  评论(0编辑  收藏  举报