throw ステートメント
更新 : 2007 年 11 月
try...catch...finally ステートメントで処理できるエラー条件を生成します。
throw [exception]
引数
- exception
省略可能です。任意の式を指定します。
解説
throw ステートメントは、catch ブロック内にある場合にだけ、引数なしで使用できます。その場合、throw ステートメントは、外側の catch ステートメントでキャッチされたエラーを再スローします。引数が指定されている場合、throw ステートメントは exception の値をスローします。
使用例
渡された値に基づいてエラーをスローし、そのエラーを try...catch...finally ステートメントの階層で処理する例を次に示します。
function TryCatchDemo(x){
try {
try {
if (x == 0) // Evalute argument.
throw "x equals zero"; // Throw an error.
else
throw "x does not equal zero"; // Throw a different error.
}
catch(e) { // Handle "x=0" errors here.
if (e == "x equals zero") // Check for a handled error.
return(e + " handled locally."); // Return error message.
else // Can't handle error here.
throw e; // Rethrow the error for next
} // error handler.
}
catch(e) { // Handle other errors here.
return(e + " error handled higher up."); // Return error message.
}
}
print(TryCatchDemo(0)+ "\n");
print(TryCatchDemo(1));