例外処理のサンプルです。
例外処理の構文
例外処理の構文と書き方サンプルです。
- (構文)
- try{ //例外が発生する可能性のある処理 }catch(e){ //例外発生時の処理 }finally{ //例外発生の有無に係わらず実行する処理 }
1 2 3 4 5 6 7 8 |
try{ //例外を強制的に発生 throw "例外です"; }catch(e){ alert(e); }finally{ alert("ここは例外の有無に係わらず実行されます。"); } |
- (結果) ※以下の2つがアラート表示されます。
- 「例外です」 「ここは例外の有無に係わらず実行されます。」
解説
- try:例外発生の可能性がある処理を記述します。
- catch:例外発生時の処理を記述します。
- finally:例外の発生有無に係わらず実行されます。
例外の情報を取得する
catchの引数からは以下のような値を取得できます。
プロパティ | 意味 | 値の一例 |
---|---|---|
e.message | エラーメッセージ | Cannot read property 'value' of null |
e.name | 例外型名 | TypeError |
e.lineNumber | エラー発生行 | 20 |
e.columnNumber | エラー発生行の文字位置 | 13 |
e.fileName | エラーの発生したファイルパス | http://xxx/sample.js |
e.stack | スタックトレース | Cannot read property 'value' of null at test(http://xxx/aaa.html:20:13) |
1 2 3 4 5 6 |
try{ //処理 }catch(e){ alert(e.message); //メッセージをアラート表示する alert(e.stack); //スタックトレースをアラート表示する } |
例外の型
JavaScript例外の型には以下のようなものがあります。
例外型 | 意味 |
---|---|
Error | 通常のエラー |
TypeError | 型が不正なエラー |
SyntaxError | 構文エラー |
EvalError | evalを不適切に使用した場合のエラー |
RangeError | 有効範囲外エラー |
ReferenceError | null参照など不正な参照エラー |
URIError | URIエンコード/デコード関連エラー |
以下のようにエラーオブジェクトを明示的に生成する事もできます。
1 2 3 4 5 |
//TypeErrorオブジェクトを生成する var ex = new TypeError("TypeErrorです。"); //生成したオブジェクトをthrowする throw ex; |