try...catch...finally

365 阅读1分钟

image.png

执行步骤:

  • try:
    1. 正常执行语句输出 0
    2. 遇到 throw 语句,转入 catch 块
  • catch:
    1. 执行 catch 中的输出语句输出 1
    2. 遇到 return 语句代表 catch 语句执行结束
    3. 在真正返回之前,执行 finally 内语句
  • finally:
    1. 输出 3
    2. 遇到 return 语句,覆盖掉 catch 中的 return ,直接返回 false

详细讲解:

  1. throw
    throw 语句的作用是手动中断程序执行,抛出一个错误

  2. try...catch

    1. 允许对错误进行处理。
    2. try 代码块抛出错误,JavaScript 引擎就立即把代码的执行,转到 catch 代码块,或者说错误被 catch 代码块捕获了。
    3. catch 代码块捕获错误之后,程序不会中断,会按照正常流程继续执行下去。 image.png
  3. finally

    1. 表示不管是否出现错误,都必需在最后运行的语句
    2. 下面例子说明,return 语句的执行是排在 finally 代码之前,只是等 finally 代码执行完毕后才返回。

image.png

  1. catch
    catch 代码块之中,触发传入 finally 代码块的标志,不仅有 return 语句,还有 throw 语句。

image.png

进入 catch 代码块之后,一遇到 throw 语句,就会去执行 finally 代码块,其中有 return false 语句,因此就直接返回了,不会再回去执行 catch 代码块剩下的部分。