English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript try...catch ステートメント

 JavaScript 文と変数宣言

try ... catchステートメントは、スローされた例外(エラー)に対する応答を指定して、試行するステートメントブロックをマークします。

try ステートメントは 1 つの try ブロックで構成され、その中に 1 つ以上のステートメントが含まれます。{}は常に単一のステートメントに対して使用する必要があります。

少なくとも 1 つの catch 子句または finally 子句が存在する必要があります。これにより、try ステートメントには 3 つの形式があります:

  • try...catch

  • try...finally

  • try...catch...finally

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

catchステートメントは、try ブロックでエラーが発生した場合に実行されるコードブロックを定義することができます。

finally宣言では、try と catch の後で、結果に関わらずに実行できるコードがあります。

注意: catch と finally ステートメントは任意ですが、try ステートメントを使用する場合、そのうちの1つを使用する必要があります(同時に使用できない場合もあります)。

使用throwステートメントはカスタムエラー(例外をスロー)を生成します。もしthrowtry と catch を一緒に使用すると、プログラムの流れを指定し、カスタムエラーメッセージを生成できます(以下の「さらに詳しい例」を参照してください)。

私たちのJavaScript例外のチュートリアルでは例外に関する詳細な情報を学びます。

文法:

try {
   //try_statements-試行するステートメント
}
catch(err) {
   //catch_statements-エラーを処理するステートメント
}
finally {
  //finally_statements-try / tryの結果に関わらず、実行されるステートメント
}
try {
   aaalert("Hello world");
}
catch(err) {
   document.getElementById("result").innerHTML = err;
}
テストしてみる‹/›

ブラウザの互換性

すべてのブラウザが完全にtry ... catch文をサポートしています:

try...catch

パラメータの値

パラメータ説明
try_statements実行するステートメント。
err関連するcatch子句の例外オブジェクトの識別子。参照してくださいエラーオブジェクト
catch_statements(オプション)tryブロックで例外が発生した時に実行されるステートメント。エラーが発生しない場合、このコードブロックは決して実行されません。
finally_statements(オプション)try文が完了した後に実行されるステートメント。例外が発生したかどうかに関わらず、これらのステートメントは実行されます。

技術的詳細

JavaScriptバージョン:ECMAScript 3

サンプル

finally宣言の中で、コードを実行できます。tryとcatchの後でも、結果に関わらず:

try {
   aaalert("Hello world");
}
catch(err) {
   document.getElementById("result").innerHTML = err;
}
finally {
   document.getElementById("result").innerHTML += "<h3>Finally ステートメントが実行されました</h3>";
}
テストしてみる‹/›

catchおよびfinallyステートメントは任意ですが、try文を使用する場合、そのうちの1つを使用する必要があります(同時に使用できない場合があります):

try {
   aaalert("Hello world");
}
finally {
   document.getElementById("result").innerHTML = "最終実行ステートメント";
}
テストしてみる‹/›

使用throwステートメントを作成し、カスタムエラー(例外)を発生させる:

function getRectArea(width, height) {
   if (isNaN(width) || isNaN(height)) {
  throw "引数が数字ではありません!";
   }
}
try {
   getRectArea(5, 'Z');
}
catch(err) {
   document.getElementById('para').innerHTML = err;
}
テストしてみる‹/›

入力を確認し、値が不正であれば例外(err)を発生させる。catch例外(err)をキャッチし、カスタムエラーメッセージを表示する:

var x = document.querySelector("input").value;
try {
   if(x == "") throw "is Empty";
   )throw "Not a Number";
   if(x > 10) throw "too High";
   if(x < 5)throw "too Low";
}
catch(err) {
   document.getElementById("para").innerHTML = "Input " + err;
}
テストしてみる‹/›

他にも見てみましょう

JavaScript 教程:JavaScript 異常

JavaScript 参考:JavaScript エラーオブジェクト

JavaScript 参考:JavaScript throw 文

 JavaScript 文と変数宣言