执行步骤:
- try:
- 正常执行语句输出 0
- 遇到 throw 语句,转入 catch 块
- catch:
- 执行 catch 中的输出语句输出 1
- 遇到 return 语句代表 catch 语句执行结束
- 在真正返回之前,执行 finally 内语句
- finally:
- 输出 3
- 遇到 return 语句,覆盖掉 catch 中的 return ,直接返回 false
详细讲解:
-
throw
throw 语句的作用是手动中断程序执行,抛出一个错误 -
try...catch
- 允许对错误进行处理。
- try 代码块抛出错误,JavaScript 引擎就立即把代码的执行,转到 catch 代码块,或者说错误被 catch 代码块捕获了。
- catch 代码块捕获错误之后,程序不会中断,会按照正常流程继续执行下去。
-
finally
- 表示不管是否出现错误,都必需在最后运行的语句
- 下面例子说明,return 语句的执行是排在 finally 代码之前,只是等 finally 代码执行完毕后才返回。
- catch
catch 代码块之中,触发传入 finally 代码块的标志,不仅有 return 语句,还有 throw 语句。
进入 catch 代码块之后,一遇到 throw 语句,就会去执行 finally 代码块,其中有 return false 语句,因此就直接返回了,不会再回去执行 catch 代码块剩下的部分。