你了解try catch和常见的错误信息吗

596 阅读2分钟

「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

每个浏览器在发生JavaScript错误时的行为都或多或少有一些差异。有的会显示小图标,有的则什么动静都没有,浏览器对JavaScript错误的这些默认行为对最终用户而言,毫无规律可循。最理想的情况下,用户遇到错误搞不清为什么,他们会再试着重做一次,最糟糕的情况下,用户会恼羞成怒,一去不复返了。良好的错误处理机制可以让用户及时得到提醒,知道到底发生了什么事,因而不会惊慌失措。为此,作为开发人员,我们必须理解在处理JavaScript错误的时候,都有哪些手段和工具可以利用

其中就有try catch

try catch主要用于捕获错误代码的,解决当某些代码出错时而导致后续代码终止的问题 格式:

try {
    //tryCode - 尝试执行代码块
}
catch(err) {
    //catchCode - 捕获错误的代码块
}
finally {
   // finallyCode - 无论 try / catch 结果如何都会执行的代码块
}

几点得注意:

  1. try里放置可能出错的代码块
  2. try里面的代码发生错误时,不会执行try里面错误代码之后的代码了,而会继续try外的其他代码
  3. catch用于捕获错误信息,里面里放置是当 try 代码块发生错误时所执行的代码块
  4. finally最终都会执行的代码块
  5. catch 和 finally 语句都是可选的,但至少有一个跟try配合使用。

在catch语句中,其中有个参数error,打印出来看看:

try {
  console.log(a);
} catch (error) {
  console.log(error);//ReferenceError: a is not defined
  console.log(error.name);//ReferenceError
  console.log(error.message)//a is not defined
}

其实参数就是包好的错误对象,主要包括两部分: 1. error.name:错误信息名 2. error.message:详细错误信息

error.name有六种对应信息:

1. EvalError:eval()的使用错误

2. RangeError:范围越界

3. ReferenceError:非法或者不能识别的引用数值

4. SyntaxError:发生语法解析错误

5. TypeError: 类型错误

6. URIError:URI处理函数使用不当