关键字;在它们所包括的代码块内,如果发生错误,将对错误进行响应。如果 try
代码块内的任何代码抛出了一个错误(使用 throw
动作),控制将传递到 catch
代码块(如果有),然后传递到 finally
代码块(如果有)。无论是否有错误被抛出,finally
代码块都会执行。如果 try
代码块内的代码未抛出错误(也就是说,如果 try
代码块正常完成),则仍会执行 finally
代码块内的代码。即使 try
代码块使用 return
语句退出,finally
代码块仍会执行。
*catch 中抛出的异常要在finally执行完才会执行抛出的动作,所以如果在finally中使用return后catch 中抛出的异常,就没办法抛出去,演示代码:
======================
try
代码块后面必须跟有 catch
代码块、finally
代码块,或两者都有。一个 try
代码块可以有多个 catch
代码块,但只能有一个 finally
代码块。您可以根据需要嵌套多层try
代码块(层数没有限制)。
在 catch
处理函数内指定的 error
参数必须为一个简单的标识符,例如,e
或theException
或 x
。您还可以为 catch
处理函数中的变量指定类型。如果指定了不同的错误类型,再结合使用多个 catch
代码块,可以捕获从一个 try
代码块抛出的多种类型的错误。
抛出的异常是对象时,如果抛出的对象是指定类型的一个子类,则类型将匹配。如果抛出的是特定类型的错误,将执行处理相应错误的 catch
代码块。如果抛出的不是指定类型的异常,则不会执行 catch
代码块,而会自动将该异常从 try
代码块抛出到与其相匹配的 catch
处理函数。
如果在某个函数内抛出了错误,而该函数中没有 catch
处理函数,则动作脚本解释器退出该函数以及任何调用函数,直到找到一个 catch
代码块。在此过程中,在各层上都会调用 finally
处理函数。