try...catch...finally 语句

更新:2007 年 11 月

为 JScript 实现错误处理。

try {
   [tryStatements]
} catch(exception) {
   [catchStatements]
} finally {
   [finallyStatements]}

参数

  • tryStatements
    可选项。可能发生错误的语句。

  • exception
    必选。任何变量名称。exception 的初始值是引发的错误的值。

  • catchStatements
    可选项。处理在相关联的 tryStatement 中发生的错误的语句。

  • finallyStatements
    可选项。在所有其他的错误过程发生之后被无条件执行的语句。

备注

try...catch...finally 语句提供了一种方法,可处理给定代码块中可能会发生的一些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JScript 只给用户提供它的一般错误信息,就好象没有错误处理一样。

tryStatements 参数包含可能发生错误的代码,而 catchStatements 则包含了可处理任何发生的错误的代码。如果在 tryStatements 中发生了一个错误,则将把程序控制传递给 catchStatements 来处理该错误。exception 的初始值是发生在 tryStatements 中发生的错误的值。如果不发生错误,则不执行 catchStatements。

如果在与发生错误的 tryStatements 相关联的 catchStatements 中不能处理该错误,则使用 throw 语句将这个错误传播或重新引发给更高级的错误处理程序。

在执行完 tryStatements 中的语句,并在 catchStatements 的所有错误处理发生之后,可无条件执行 finallyStatements 中的语句。

请注意,即使 trycatch 块中出现返回语句,或 catch 块中引发错误,都会执行 finallyStatements 中的代码。finallyStatments 一定会始终运行。

示例

下面的示例阐释了 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");
}

将生成以下输出:

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 语句

错误对象