JavaScript try/catch/finally文

JavaScript 语句参考手册JavaScript 文リファレンス

例

以下の例では、try ブロックのコードにわざとスペルミスを書いています。

この例では「ようこそ!」とアラートが表示されるはずですが、スペルミスのエラーメッセージがポップアップ表示されます。

catch ブロックは try ブロック内のエラーを捕捉し、それを処理するコードを実行します:

try { adddlert("ようこそ!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; }

試してみる »

この記事の下部には、さらに多くの例が含まれています


定義と用法

try/catch/finally 文は、コード内で発生する可能性のあるエラーを処理するために使用されます。

エラーは構文エラーの可能性があり、通常はプログラマーによるコーディングエラーやタイプミスです。また、スペルミスや、言語に不足している機能(ブラウザの違いによる可能性があります)である場合もあります。

tryこの文を使用すると、実行時にエラーテストを行うコードブロックを定義できます。

catchこの文を使用すると、コードブロックでエラーが発生したときにtry実行されるコードブロックを定義できます。

finallyこの文は、try と catch の後、例外の有無にかかわらず実行されます。

注意:catch 文と finally 文はどちらもオプションですが、try 文を使用する場合は少なくとも1つ使用する必要があります。

ヒント:エラーが発生すると、JavaScript は実行を停止し、エラーメッセージを生成します。throw 文をthrow使用してカスタムメッセージを作成します(例外をスロー)。もしthrowとtry 、 catch一緒に使用すると、プログラムが出力するエラーメッセージを制御できます。

JavaScript エラーの詳細については、私たちのJavaScript エラーチュートリアルを参照してください。


ブラウザサポート

文
try/catch/finally Yes Yes Yes Yes Yes


構文

try {
    tryCode - 実行を試みるコードブロック
}
catch(err) {
    catchCode - エラーを捕捉するコードブロック
}
finally {
    finallyCode - try / catch の結果に関係なく実行されるコードブロック
}

パラメータ値

パラメータ 説明
tryCode 必須。エラーがないかチェックするコードブロック。
err 必須(catch を使用する場合)。ローカル変数に適用されるエラーを指定します。この変数は Error オブジェクト(発生したエラー情報(「'addlert' が定義されていません」など)を含む)を参照できます。例外が throw 文によって作成された場合、この変数は throw 文で指定されたオブジェクトを参照します(「その他の例」を参照)。
catchCode オプション。try 文でエラーが発生した場合に実行されるコードブロック。try 文でエラーが発生しなかった場合、このコードは実行されません。
finallyCode オプション。try / catch の結果に関係なく実行されます。

技術詳細

JavaScript バージョン: 1.4


实例

その他の例

例

この例では、入力された値が間違っているかどうかをチェックし、間違っている場合は例外をスローします。

例外は catch 文で捕捉され、カスタムメッセージが出力されます:

<p>5 から 10 の間の数値を入力してください:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">入力チェック</button> <p id="message"></p> <script>
function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "空です"; if(isNaN(x)) throw "数値ではありません"; if(x > 10) throw "大きすぎます"; if(x < 5) throw "小さすぎます"; } catch(err) { message.innerHTML = "入力値" + err; } }
</script>

試してみる »

例

finallyこの文は、try と catch の実行結果に関係なく実行されます:

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "空です"; if(isNaN(x)) throw "数値ではありません"; if(x > 10) throw "大きすぎます"; if(x < 5) throw "小さすぎます"; } catch(err) { message.innerHTML = "入力値" + err; } finally { document.getElementById("demo").value = ""; } }

試してみる »


関連ページ

JavaScript チュートリアル:JavaScript エラー

JavaScript リファレンス:JavaScript throw 文


JavaScript 语句参考手册JavaScript 文リファレンス その他の拡張