【えらーはんどりんぐ】
エラーハンドリング とは?
💡 転んでもケガしないための「受け身の技術」
📌 このページのポイント
- try-catch文でエラーを捕まえて、プログラムの異常終了を防げる
- エラーの種類(TypeError, ReferenceError など)に応じた対処を分けられる
- ユーザーにわかりやすいエラーメッセージを表示してリカバリ手段を提供できる
- 非同期処理では .catch() や try-catch + async/await でエラーを処理する
エラーが出たらそこで止まるんじゃないの?
すべてのコードをtry-catchで囲めばいい?
エラーハンドリングのベストプラクティスって何かあるの?
「早く失敗する(Fail Fast)」が基本原則だよ。入力値のバリデーションは処理の最初に行い、不正なら即座にエラーを返す。奥深くまで処理が進んでからエラーに気づくと、原因特定が難しくなるし、中途半端な状態のデータが残るリスクもあるんだ。
最近よく聞くResult型ってエラーハンドリングと関係あるの?
大いにあるよ。RustのResult型やTypeScriptのneverthrowライブラリは「成功か失敗か」を型で表現するアプローチ。try-catchだとどの関数がエラーを投げるか型情報からわからないけど、Result型なら戻り値の型を見るだけで「この関数は失敗する可能性がある」と明示できる。関数型プログラミングの影響を受けた現代的なエラーハンドリング手法として注目されているよ。
まとめ:ざっくりこれだけ覚えればOK!
エラーハンドリングって出てきたら「エラーが起きても安全に対処する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「error handling」 = エラーの取り扱い
💬 handle は「扱う・処理する」という意味で、発生したエラーにどう対処するかの仕組み