JS
try-catch
中級読み方:トライキャッチ|英語:Try Catch
エラーが起きても処理を止めずに対処する構文で、tryの中でエラーが起きるとcatchに移るよ。いつ使う? JSON.parse()やfetch()など、失敗する可能性がある処理を安全に実行したいときに使うよ。間違いやすいポイント: try-catchは同期的なエラーしかキャッチできないよ。async/awaitと組み合わせれば非同期エラーもキャッチできるよ。
やさしい説明
try-catchは、エラーが起きてもプログラムを止めずに対処する仕組みです。
try の中でエラーが起きると、プログラムが止まる代わりに catch ブロックに移動します。そこでエラーメッセージを表示したり、代替処理を実行したりできます。
finally ブロックを追加すると、成功でも失敗でも「必ず実行する処理」を書けます。
具体例・使い方
// JSONのパースでエラーをキャッチ
try {
const data = JSON.parse(text);
console.log(data);
} catch (err) {
console.error("JSONが不正です:", err.message);
} finally {
console.log("処理完了"); // 必ず実行される
}
// async/awaitと組み合わせる
async function fetchData() {
try {
const res = await fetch(url);
return await res.json();
} catch (err) {
console.error("通信エラー:", err);
return null;
}
} いつ使う?
API通信(ネットワークエラーの可能性)、JSONパース(不正なデータの可能性)、ユーザー入力の処理(予期しない値の可能性)など、エラーが起きうる処理に使います。
間違いやすいポイント
❌ catchの中で何もしない(エラーを握りつぶす)
// ❌ エラーを無視するとバグの原因がわからない
try { ... } catch (e) {}
// ✅ 最低限ログを出す
try { ... } catch (e) { console.error(e); } よくある疑問
Q: finallyとは?
A: try-catch-finally のfinallyは、成功でも失敗でも必ず実行されるブロックです。ローディング表示の解除などに使います。
Q: catchの引数eとは?
A: エラーオブジェクトです。e.message でエラーメッセージ、e.stack でスタックトレースが取得できます。
Q: 全ての処理をtry-catchで囲むべき?
A: いいえ。失敗する可能性がある処理(外部通信、JSON解析、ユーザー入力の処理等)だけ囲みましょう。
関連用語
📖 関連レッスン
レッスンを見る →