throw ステートメント
try...catch...finally ステートメントで処理できるエラー条件を生成します。
throw [exception]
引数
- exception
省略可能です。 任意の式を指定します。
解説
throw ステートメントは、catch ブロック内にある場合にだけ、引数なしで使用できます。 その場合、throw ステートメントは、外側の catch ステートメントでキャッチされたエラーを再スローします。 引数が指定されている場合、throw ステートメントは exception の値をスローします。
使用例
渡された値に基づいてエラーをスローし、そのエラーを try...catch...finally ステートメントの階層で処理する例を次に示します。
function ThrowDemo(x)
{
try
{
try
{
// Throw an exception that depends on the argument.
if (x == 0)
throw new Error(200, "x equals zero");
else
throw new Error(201, "x does not equal zero");
}
catch(e)
{
// Handle the exception.
switch (e.number)
{
case 200:
print (e.message + " - handled locally.");
break;
default:
// Throw the exception to a higher level.
throw e;
}
}
}
catch(e)
{
// Handle the higher-level exception.
print (e.message + " - handled higher up.");
}
}
ThrowDemo (0);
ThrowDemo (1);
// Output:
// x equals zero - handled locally.
// x does not equal zero - handled higher up.