ES6中Try...Catch....finally 异常捕获

基本语法

/**
*
* try {
*     tryCode -- 尝试执行的代码
* } catch(error) {
*     catchCode -- 捕捉到错误的代码时触发
* } finally {
*     finallyCode -- 无论走 try/catch 都要执行这里的代码
* }
*
*/

简单案例

try {
  alert("1");
} catch (error) {
  alert(error);
} finally {
  alert("Hello, 郑州");
}

复杂案例

var a = 3;
try {
  if (a < 5) {
    alert("+++++++");
    let a = 10000;
    // throw 的值会传递给 catch
    throw a;
  }
  if (a < 10 && a >= 5) throw "这个数小于10";
  if (a < 15 && a >= 10) throw "这个数小于15";
} catch (msg) {
  alert(msg);
}

try catch的缺点

1.try catch耗性能
2.try catch捕获不到异步错误
3.try catch可能会导致报错点更模糊

报错顺序

a.try里面的代码报错的时候,catch里面的代码才会执行,finally里面的代码永远会执行
b.catch和finally里面,正常的代码会从上到下顺序执行
c.如果只是catch里面代码出错,则报catch里面的错误
d.如果catch和finally都出错则会报finally里面的错误

使用场景

  为容易出错的,容易产生兼容问题的代码段加上try..catch。合处理那些我们无法控制的错误,如I/O操作,后端java读取I/O操作比较多比如读数据库,所以用try catch比较多。前端可以用在上传图片或async await同步调接口。

注意

  try catch语句,作为JavaScript中处理异常的一种标准方式。但是在前端js代码中很少看到try catch语句,并不是所以代码都需要加try catch来作得不偿失的“保险”。
原文地址:https://www.cnblogs.com/ranyihang/p/try.html