15エラー処理
JavaScriptでプログラミングを行う際、何か問題が発生すると、通常はエラーが発生します。JavaScriptのエラーオブジェクトは、これらのエラーの詳細情報を提供するための特別な種類のオブジェクトです。
簡単に言うと、エラーオブジェクトはプログラムがなぜ停止したのか、どのような問題があったのかを教えてくれる「ヘルパー」のようなものです。
エラーオブジェクトの基本
エラーオブジェクトには、主に次のような情報が含まれています:
name
エラーの種類を示します。例えば、「TypeError」、「ReferenceError」などがあります。
代表的な例外の種類
- ReferenceError: 未定義の変数や関数を参照しようとした場合に発生します。
- SyntaxError: 記法に間違いがある場合に発生します。
- TypeError: 主に、メソッド実行時に期待された方ではなかった場合に発生します。
message
人が読める形式でエラーの詳細を説明します。
stack(オプション)
エラーが発生した時のプログラムの呼び出しスタックを示します。これは、エラーがどこで発生したかを追跡するのに役立ちます。
実際にはtry…catch文と組み合わせて使用されることが多いです。
これらを組み合わせることでプログラムの特定の部分でエラーをキャッチ(捕捉)し、エラーオブジェクトに基づいて適切な処理を行うことができます。
また、finallyを組み合わせることで例外の発生有無にかかわらず実行したいコードを実行することができます。
実行タイミングは、「tryブロックの終了後」または「catchブロックの終了後」になります。
例1: エラーオブジェクトを作成し、throw文で例外を発生させる場合
try {
// エラーオブジェクトを作成
throw new Error('このエラーをテストします');
console.log('これはエラー発生により実行されない')
} catch (e) { // eはErrotオブジェクト
// エラーが発生した場合の処理
console.log(e.name); // 出力: "Error"
console.log(e.message); // 出力: "このエラーをテストします"
} finally {
console.log('finallyブロック: エラーの有無に関わらず実行されます');
}例2: 存在しない関数を実行し、エラーを発生させる場合
try {
// 存在しない関数を実行
notExistingFunction();
console.log('これはエラー発生により実行されない')
} catch (e) { // eはErrotオブジェクト
// エラーが発生した場合の処理
console.log(e.name); // 出力: "ReferenceError"
console.log(e.message); // 出力: "notExistingFunction is not defined"
} finally {
console.log('finallyブロック: エラーの有無に関わらず実行されます');
}
コメントを残す