JavaScript エラー
Throw, and Try…Catch…Finally
このtryステートメントは、実行する(試行する)コードブロックを定義します。
このcatchステートメントは、エラーを処理するコードブロックを定義します。
このfinallyステートメントは、結果に関係なく実行するコードブロックを定義します。
このthrowステートメントは、カスタム エラーを定義します。
エラーが発生します!
JavaScript コードを実行すると、さまざまなエラーが発生する可能性があります。
エラーには、プログラマーによるコーディング エラー、間違った入力によるエラー、およびその他の予測できないものである可能性があります。
例
この例では、意図的にエラーを生成するために、「alert」のスペルを「adddlet」と間違えています。
JavaScriptはaddlertをエラーとしてキャッチし、キャッチコードを実行してそれを処理します。
JavaScriptのTry...Catch
このtryステートメントを使用すると、実行中にエラーをテストするコードブロックを定義できます。
このcatchステートメントを使用すると、tryブロックでエラーが発生した場合に実行されるコードのブロックを定義できます。
JavaScriptステートメントはtryとcatchペアで提供されます。
JavaScriptがエラーをスローする
エラーが発生すると、JavaScriptは通常停止し、エラーメッセージを生成します。
これを専門用語で言うとJavascriptは例外をスローする(エラーをスローする)。
JavaScriptは実際にエラーオブジェクト次の名前とメッセージ、2つのプロパティがあります。
throw ステートメント
このthrowステートメントを使用すると、カスタムエラーを作成できます。
技術的には例外を投げることができます (エラーを投げる)。
例外はJavaScriptのString、Number、Boolean、Objectのいずれかになります。
throwをtryやcatchと一緒に使えば、プログラムの流れを制御し、カスタムエラーメッセージを生成したりできます。
入力検証の例
この例では、入力を調べます。値が間違っている場合は、例外(err)がスローされます。
例外(err)はcatchステートメントによってキャッチされ、カスタムエラーメッセージが表示されます。
HTML 検証
上記のコードは単なる例です。
最近のブラウザーは、HTML属性で定義された定義済みの検証ルールを使用して、JavaScriptと組み込みのHTML検証を組み合わせて使用することがよくあります。
フォームの検証については、このチュートリアルの後の章で詳しく読むことができます。
最終ステートメント
finallyステートメントを使用すると、結果に関係なく、tryとcatchの後にコードを実行できます。
構文
例
エラーオブジェクト
JavaScriptには、エラーが発生したときにエラー情報を提供するエラーオブジェクトが組み込まれています。
エラーオブジェクトには、nameとmessageという2つの便利なプロパティがあります。
エラーオブジェクトのプロパティ
| プロパティ | 説明 |
|---|---|
| name | エラー名を設定または返す |
| message | エラーメッセージ(文字列)を設定または返す |
エラー名の値
エラー名プロパティによって、6つの異なる値を返すことができます。
| エラー名 | 説明 |
|---|---|
| EvalError | eval()関数でエラーが発生しました |
| RangeError | 「範囲外」の数値が発生しました |
| ReferenceError | 不正な参照が発生しました |
| SyntaxError | 構文エラーが発生しました |
| TypeError | 型エラーが発生しました |
| URIError | encodeURI() でエラーが発生しました |
6つの異なる値を以下に説明します。
Eval Error
EvalErrorはeval() 関数のエラーを示します。
JavaScriptの新しいバージョンはEvalErrorをスローしません。代わりにSyntaxErrorを使用してください。
Range Error
有効な値の範囲外の数値を使用すると、RangeErrorがスローされます。
例: 数値の有効桁数を 500に設定することはできません。
例
Reference Error
宣言されていない変数を使用(参照)するとReferenceErrorがスローされます。
例
Syntax Error
構文エラーのあるコードを評価しようとすると、SyntaxErrorがスローされます。
例
Type Error
予想される型の範囲外の値を使用すると、TypeErrorがスローされます。
例
URI (Uniform Resource Identifier)Error
URI関数で不正な文字を使用すると、URIErrorがスローされます。
例
Non-Standard Error Object Properties
MozillaとMicrosoft は、いくつかの非標準のエラーオブジェクトプロパティを定義しています。
fileName (Mozilla)lineNumber (Mozilla)columnNumber (Mozilla)stack (Mozilla)description (Microsoft)number (Microsoft)
これらのプロパティを公開Webサイトで使用しないでください。すべてのブラウザーで機能するわけではありません。
Complete Error Reference
Errorオブジェクトの完全なリファレンスについては、完全な JavaScript エラー リファレンスを参照して下さい。