019 例外と例外処理(例外クラス) 007 解答例

// カスタム例外クラス: InvalidInputException
class InvalidInputException extends Exception {
    public InvalidInputException(String message) {
        super(message);
    }
}

// カスタム例外クラス: OutOfRangeException
class OutOfRangeException extends Exception {
    public OutOfRangeException(String message) {
        super(message);
    }
}

public class CustomExceptionExample {
    public static void main(String[] args) {
        CustomExceptionExample example = new CustomExceptionExample();

        try {
            example.validateInput("ValidInput"); // 有効な入力
            example.validateInput("InvalidInput"); // 無効な入力

            example.checkRange(5); // 有効な範囲
            example.checkRange(15); // 無効な範囲

        } catch (InvalidInputException e) {
            System.out.println("InvalidInputException: " + e.getMessage());

        } catch (OutOfRangeException e) {
            System.out.println("OutOfRangeException: " + e.getMessage());
        }
    }

    // メソッド: 入力が特定の条件を満たさない場合にInvalidInputExceptionをスロー
    private void validateInput(String input) throws InvalidInputException {
        if (!input.equals("ValidInput")) {
            throw new InvalidInputException("無効な入力です");
        }
    }

    // メソッド: 範囲外の値が渡された場合にOutOfRangeExceptionをスロー
    private void checkRange(int value) throws OutOfRangeException {
        if (value < 0 || value > 10) {
            throw new OutOfRangeException("範囲外の値です");
        }
    }
}

このプログラムでは、validateInput メソッドでは入力が “ValidInput” でない場合に InvalidInputException をスローし、checkRange メソッドでは値が0から10の範囲外の場合に OutOfRangeException をスローしています。main メソッドではそれらのメソッドを呼び出し、発生した例外に対して適切なメッセージを表示しています。

「019 例外と例外処理」問題集リスト