Microsoft(R) JScript(R)
try...catch 语句
 语言参考 
版本 5 

请参阅


描述
为 JScript 实现错误处理。
语法
try
  tryStatement
catch(exception)
  catchStatement

try...catch 语句的语法组成部分如下:

部分 描述
tryStatement 可能发生错误的语句。可以是复合语句
exception 任何变量名。exception 的初始化值是扔出的错误的值。
catchStatement 处理在相关联的 tryStatement 中发生的错误的语句。可以是复合语句。

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

tryStatement 参数包含可能发生错误的代码,而 catchStatement 则包含处理任何发生了的错误的代码。如果在 tryStatement 中发生了一个错误,则程序控制被传给 catchStatement 来安排。exception 的初始化值是发生在 tryStatement 中的错误的值。

如果在与发生错误的 tryStatement 相关联的 catchStatement 中不能处理该错误,则使用 throw 语句来传播、或重新扔出这个错误给更高级的错误处理程序。

下面的例子根据传递进来的值扔出一个错误。然后它举例说明了那个错误如何在 try...catch 语句的层次中被处理:

function TryCatchDemo(x)
{
  try {
    try {
    if (x == 0)					// 估参数的值。
      throw "x equals zero";			// 扔出一个错误。
    else
      throw "x does not equal zero";		// 扔出另一个不同的错误。
    }
    catch(e) {					// 在此处理 "x = 0" 的错误。
      if (e == "x equals zero")			// 检查一个错误是否该在此处理。
        return(e + " handled locally.");	// 返回对象错误消息。
      else					// 不能在此处理错误。
        throw e;					// 重新扔出该错误给下一个
    }							// 错误处理程序。
  }
  catch(e) {						// 在此处理其他错误。
    return(e + " handled higher up.");		// 返回错误信息。
  }
}
document.write(TryCatchDemo(0));
document.write(TryCatchDemo(1));