网友俱乐部 » » Javascript教程 » try...catch...finally 语句

2007-7-18 09:48 ljjk5
try...catch...finally 语句

为 JScript 实现错误处理。
[b]try[/b] [b]{[/b]   [i]tryStatements[/i][b]}[/b][b]catch([/b][i]exception[/i][b]){[/b]   [i]catchStatements[/i][b]}[/b][b]finally {[/b]   [i]finallyStatements[/i][b]}[/b]参数[i]tryStatement[/i] 必选项。可能发生错误的语句。 [i]exception[/i] 必选项。任何变量名。[i]exception[/i] 的初始化值是扔出的错误的值。 [i]catchStatement[/i] 可选项。处理在相关联的 [i]tryStatement[/i] 中发生的错误的语句。 [i]finallyStatements[/i] 可选项。在所有其他过程发生之后无条件执行的语句。 说明[b]try...catch...finally [/b]语句提供了一种方法来处理可能发生在给定代码块中的某些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JScript 只给用户提供它的普通错误信息,就好象没有错误处理一样。
[i]tryStatements[/i] 参数包含可能发生错误的代码,而 [i]catchStatement[/i] 则包含处理任何发生了的错误的代码。如果在 [i]tryStatements[/i] 中发生了一个错误,则程序控制被传给 [i]catchStatements[/i] 来处理。[i]exception[/i] 的初始化值是发生在 [i]tryStatements[/i] 中的错误的值。如果错误不发生,则不执行 [i]catchStatements[/i]。
如果在与发生错误的 [i]tryStatements[/i] 相关联的 [i]catchStatements[/i] 中不能处理该错误,则使用 [b]throw[/b] 语句来传播、或重新扔出这个错误给更高级的错误处理程序。
在执行完 [i]tryStatements[/i] 中的语句,并在 [i]catchStatements [/i]的所有错误处理发生之后,可无条件执行 [i]finallyStatements[/i] 中的语句。
请注意,即使在 [b]try[/b] 或 [b]catch[/b] 块中返回一个语句,或在 [b]catch[/b] 块重新扔出一个错误,仍然会执行 [i]finallyStatements[/i] 编码。一般将确保 [i]finallyStatments[/i] 的运行,除非存在未处理的错误。(例如,在 [b]catch[/b] 块中发生运行时错误。)。
示例下面的例子阐明了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 errorNested finally is running...Outer catch caught an error re-thrownOuter finally running要求[url=http://www.chinapsd.com/lesson/js56jsoriversioninformation.htm]版本 5[/url]

页: [1]
查看完整版本: try...catch...finally 语句


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.