try...catch...finally 语句

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有