ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
| JScript  | [语言参考](#) | |-----|-----| # try...catch...finally 语句 为 JScript 实现错误处理。 `**try** `**{**    *`tryStatements`***}** `**catch(***exception***){**`    *`catchStatements`***}** **`finally {`** `   *finallyStatements*`**}** #### 参数 tryStatement 必选项。可能发生错误的语句。 exception 可选项。任何[变量](#)名。*exception* 的初始化值是扔出的错误的值。 catchStatement 可选项。处理在相关联的 *tryStatement* 中发生的错误的语句。 finallyStatements 可选项。在所有其他过程发生之后无条件执行的语句。 #### 说明 **try...catch...finally **语句提供了一种方法来处理可能发生在给定代码块中的某些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JScript 只给用户提供它的普通错误消息,就好象没有错误处理一样。 *tryStatements* 参数包含可能发生错误的代码,而 *catchStatement* 则包含处理任何发生了的错误的代码。如果在 *tryStatements* 中发生了一个错误,则程序控制被传给 *catchStatements* 来处理。*exception* 的初始化值是发生在 *tryStatements* 中的错误的值。如果错误不发生,则不执行 *catchStatements*。 如果在与发生错误的 *tryStatements* 相关联的 *catchStatements* 中不能处理该错误,则使用 **throw** 语句来传播、或重新扔出这个错误给更高级的错误处理程序。 在执行完 *tryStatements* 中的语句,并在 *catchStatements *的所有错误处理发生之后,可无条件执行 *finallyStatements* 中的语句。 请注意,即使在 **try** 或 **catch** 块中返回一个语句,或在 **catch** 块重新扔出一个错误,仍然会执行 *finallyStatements* 编码。 一般将确保 *finallyStatments* 的运行,除非存在未处理的错误。(例如,在 **catch** 块中发生运行时错误。)。 #### 示例 下面的例子阐明了JScript 特例处理是如何进行的。 ~~~ try { print("Outer try running.."); try { print("Nested try running..."); throw "an error"; } catch(e) { print("Nested catch caught " + e); throw e + " re-thrown"; } finally { print("Nested finally is running..."); } } catch(e) { print("Outer catch caught " + e); } finally { print("Outer finally running"); } // Windows Script Host ~~~ 作出该修改从而得出 ~~~ WScript.Echo(s) ~~~ ~~~ function print(s){ ~~~ ~~~ document.write(s); ~~~ ~~~ } ~~~ 将得出以下结果: ~~~ Outer try running.. Nested try running... Nested catch caught an error Nested finally is running... Outer catch caught an error re-thrown Outer finally running ~~~ #### 要求 [版本 5](#) #### 请参阅 [throw 语句](#) [© 2000 Microsoft Corporation 版权所有。保留所有权利。使用规定。](#)