JavaScript エラー - throw、try、catch
try ステートメントは、コード ブロックのエラーをテストします。
catch ステートメントの処理エラー。
throw ステートメントを使用してカスタム エラーを作成します。
JavaScript エラー
JavaScript エンジンが JavaScript コードを実行すると、さまざまなエラーが発生する可能性があります。
構文エラーの可能性があります。通常はプログラマによるコーディング エラーまたはタイプミスです。
スペルの間違い、または言語の機能が欠落している可能性があります (ブラウザーの違いが原因である可能性があります)。
サーバーまたはユーザーからの誤った出力によりエラーが発生する可能性があります。
もちろん、他の多くの予測不可能な要因が原因である可能性もあります。
JavaScript がエラーをスローする
エラーが発生したり、何か問題が発生したりすると、通常、JavaScript エンジンが停止し、エラー メッセージが生成されます。
この状況を説明する専門用語は、「JavaScript がエラーをスローする」です。 JavaScript の try ステートメントと catch ステートメントを使用すると、実行時にエラーがテストされるコード ブロックを定義できます。
catch ステートメントを使用すると、try コード ブロックでエラーが発生したときに実行されるコード ブロックを定義できます。
try と catch はペアで表示されます。
構文
try { //ここでコードを実行
} catch(err) {//ここでエラーを処理}
インスタンス
以下の例では、 try ブロックのコードに意図的にタイプミスを書きました。アラートは意図的に addlert
として記述されています。 catch ブロックは try ブロック内のエラーをキャッチし、それを処理するコードを実行します。<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script> var txt=""; function message(){ try { adddlert("Welcome guest!"); } catch(err) { txt="本页有一个错误。\n\n"; txt+="错误描述:" + err.message + "\n\n"; txt+="点击确定继续。\n\n"; alert(txt); } } </script> </head> <body> <input type="button" value="查看消息" onclick="message()" /> </body> </html>
プログラムを実行して試してみましょう
Throw ステートメント throw ステートメントを使用すると、カスタム エラーを作成できます。
正しい専門用語は、例外の作成またはスローです。
try と catch で throw を使用すると、プログラム フローを制御し、カスタム エラー メッセージを生成できます。
構文
例外をスローする
例外には、JavaScript 文字列、数値、論理値、またはオブジェクトを使用できます。
例
この例は、入力変数の値を検出します。値が間違っている場合は、例外 (エラー) がスローされます。 catch はこのエラーをキャッチし、カスタム エラー メッセージを表示します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script> function myFunction(){ try{ var x=document.getElementById("demo").value; if(x=="") throw "值为空"; if(isNaN(x)) throw "不是数字"; if(x>10) throw "太大"; if(x<5) throw "太小"; } catch(err){ var y=document.getElementById("mess"); y.innerHTML="错误:" + err + "。"; } } </script> </head> <body> <h1>我的第一个 JavaScript</h1> <p>请输出一个 5 到 10 之间的数字:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">测试输入</button> <p id="mess"></p> </body> </html>
プログラムを実行して試してください
注意 getElementById 関数が失敗した場合、上記の例でもエラーがスローされます。