構文
構文は以下の通りです。
try {
// ここにエラーが発生する可能性があるコードを記述します
} catch (エラー) {
// エラーが発生した場合に実行されるコードを記述します
console.log(エラー.message);
} finally {
// エラーの有無にかかわらず、必ず実行されるコードを記述します
}
// ここにエラーが発生する可能性があるコードを記述します
} catch (エラー) {
// エラーが発生した場合に実行されるコードを記述します
console.log(エラー.message);
} finally {
// エラーの有無にかかわらず、必ず実行されるコードを記述します
}
解説
try...catch...finallyは、例外が発生した場合の対応をするための処理となります。tryには、エラーが発生する可能性のあるコードを記述します。catchには、tryでエラーが発生した場合に実行されるコードを記述します。(エラー) は、エラー情報を含む変数です。エラーメッセージは エラー.message で取得できます。finallyには、tryやcatchの後に必ず実行されるコードを記述します。エラーが発生したかどうかに関係なく、後処理やリソースの解放などを行います。
プログラミング例
具体的なプログラミング例を紹介します。
function エラーテスト() {
const 数字 = 10;
try {
数字 = 30;
} catch (エラー) {
// エラーが発生した場合に実行されるコード
console.log("エラーが発生しました: " + エラー.message);
} finally {
// エラーの有無にかかわらず、必ず実行されるコード
console.log("処理が完了しました。");
}
}
const 数字 = 10;
try {
数字 = 30;
} catch (エラー) {
// エラーが発生した場合に実行されるコード
console.log("エラーが発生しました: " + エラー.message);
} finally {
// エラーの有無にかかわらず、必ず実行されるコード
console.log("処理が完了しました。");
}
}
上記のプログラムは、constを使って定数数字を宣言し、値として10を代入しています。constは一度値を設定すると、後で変更することができない定数となります。次にtry内で定数数字に新しい値30を代入しようとしていますが、これはエラーを引き起こします。エラーが発生した場合、そのエラーはcatch内で処理され、エラー.messageでエラー内容をログに出力しています。finallyは、エラーの有無にかかわらず「処理が完了しました。」というメッセージが表示されます。
まとめ
try...catch...finally文は、エラー処理を行うための構文です。tryでエラーが発生する可能性のあるコードを記述し、catchでそのエラーを処理します。finallyはエラーの有無に関係なく必ず実行されるコードを記述します。