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 中的语句。
请注意,即使 try 或 catch 块中出现返回语句,或 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