例外クラス
019-002 - 例外クラス
例外クラスは、Throwableを基底とする階層構造を持ちます。Errorは回復不能な重大エラー、Exceptionは回復可能なエラーを表します。Exceptionはさらにチェック例外とRuntimeException(非チェック例外)に分かれます。チェック例外はコンパイル時に処理が強制され、非チェック例外は任意で処理します。独自の例外クラスを定義することで、アプリケーション固有のエラー情報を表現できます。
例外クラスの階層構造を理解することは、適切な例外処理の設計に不可欠です。どの例外をキャッチすべきか、どの例外を独自に定義すべきかを判断できるようになります。実務では、ビジネスロジックエラー、バリデーションエラー、システムエラーなど、エラーの種類に応じた例外クラスを定義します。たとえば、InvalidOrderExceptionやPaymentFailedExceptionなど、ドメイン固有の例外を作成することで、エラーハンドリングが明確になります。
この項目を学ぶことで、例外の種類を適切に使い分けられるようになり、保守性の高いエラーハンドリングが実装できます。例外設計の基本が身につきます。前提知識として、クラス継承と例外処理の基本を理解している必要があります。
問題 (12)
データクラス:在庫管理情報
# データクラス:在庫管理情報 **この問題では**: 商品名・在庫数・単価の3フィールドを持つ`Inventory`<a href="https://javadrill.tech/problems...
データクラス:ポイントカード情報
# データクラス:ポイントカード情報 **学習目標**: <a href="https://javadrill.tech/problems/007">クラス</a>を「データの入れ物」として理解し、...
例外処理:数値変換エラー
<h2>NumberFormatException</h2><p><strong>この問題では</strong>: 文字列を整数に変換する際に発生する <code>NumberFormatExcept...
例外クラス:カスタム例外
<h2>カスタム例外クラス</h2><p><strong>この問題では</strong>:Exceptionクラスを<a href="https://javadrill.tech/problems/0...
例外クラス:年齢バリデーション
**この問題では**: 年齢を入力し、値が0未満の場合はIllegalArgumentExceptionをスローして例外メッセージを表示し、正常な場合は年齢を標準出力に表示するプログラムを作成します。...
try-catch:例外の捕捉と処理
# <a href="https://javadrill.tech/problems/019/001">try-catch</a>:例外の捕捉と処理 **この問題では**: `ArrayAccess...
try-catch-finallyの基本構文
# 例外処理:ゼロ除算の検証 **この問題では**: `divide(int a, int b)` staticメソッドを実装し、除数が0の場合に`IllegalArgumentException`...
複数例外の個別キャッチとリソース管理
# 複数例外の伝播とリソース管理 **この問題では**: `parseElement`メソッドで文字列配列の要素を整数に変換します。`NumberFormatException`と`ArrayInd...
カスタム年齢バリデーション例外
# カスタム年齢バリデーション例外 **この問題では**: `Exception`を継承したカスタム例外クラス`InvalidAgeException`を作成し、`AgeValidator`クラスの...
カスタム例外の定義と使用
# カスタム例外の定義と使用 **この問題では**: 独自の例外クラス `InvalidAgeException` を定義し、年齢のバリデーションに使用するプログラムを作成します。 **学習目標*...
例外チェーンとcause設定
# 例外チェーンとcause設定 **この問題では**: 低レベル例外を高レベル例外にラップする「例外チェーン」パターンを実装し、原因の追跡を可能にするプログラムを作成します。 **学習目標**:...
例外の階層構造
# 例外の階層構造 **この問題では**: 検査例外と非検査例外の違いを理解し、`AppException`(検査例外)と `AppRuntimeException`(非検査例外)の2つのカスタム例...
