導入
実行時に起きるエラー(例外)に備えるのが try / catch です。想定外の入力や失敗を、プログラムを止めずに扱えます。
説明
try の中でエラーが起きると、catch に処理が移ります。自分でエラーを投げるには throw を使います。
function divide(a, b) {
if (b === 0) {
throw new Error("0で割れません");
}
return a / b;
}
try {
console.log(divide(10, 2));
console.log(divide(10, 0)); // ここで例外
console.log("ここには来ない");
} catch (err) {
console.log("エラーを捕捉:", err.message);
}
console.log("続きの処理");
finally は成功・失敗どちらでも最後に実行されます(後始末用)。
try {
console.log("処理中");
throw new Error("失敗");
} catch (err) {
console.log("捕捉:", err.message);
} finally {
console.log("後始末");
}
JSON のパースなど、失敗しうる処理でもよく使います。
try {
const data = JSON.parse('{"ok": true}');
console.log(data.ok);
JSON.parse("{壊れた}"); // 例外
} catch (err) {
console.log("JSONエラー");
}
やってみよう
divide の引数を変えて、正常系とエラー系の両方を試してみましょう。わざと壊した JSON を parse してみてください。
演習
try / catch を使い、JSON.parse("{bad}") を試みて、失敗したら "パース失敗" と表示してください。
ヒント1を見る
try { JSON.parse("{bad}"); } catch { console.log("パース失敗"); }