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 エラー リファレンスを参照して下さい。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。