Menu
Coddy logo textTech

例外のスロー

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 42/59。

Java の throw キーワードは、例外を明示的にスローすることを可能にします。基本的な構造は以下の通りです:

throw new ExceptionType("Error message");

構成要素は次の通りです:

  • throw:例外をスローするためのキーワード
  • new ExceptionType:新しい例外を作成します(例: IllegalArgumentException)
  • "Error message":何が間違っていたかを記述します

実際に動作させてみましょう:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

上記のコードを実行した後、プログラムは次の例外をスローします:

IllegalArgumentException: Age cannot be negative

challenge icon

チャレンジ

簡単

validateAge という名前のメソッドを作成してください。このメソッドは 2 つの引数を受け取ります:

  1. 検証する整数(age
  2. 検証ルールを決定するブール値(strict

このメソッドは以下のルールに基づいて例外をスローする必要があります:

  • age が負の場合:メッセージ "Age cannot be negative" で IllegalArgumentException をスロー
  • age が 150 を超える場合:メッセージ "Age cannot be greater than 150" で IllegalArgumentException をスロー
  • strict が true で age が 0 の場合:メッセージ "Age cannot be zero in strict mode" で IllegalArgumentException をスロー
  • 例外がスローされない場合:age を文字列として返す

チートシート

throw キーワードにより、例外を明示的にスローできます:

throw new ExceptionType("Error message");

構成要素:

  • throw:例外をスローするためのキーワード
  • new ExceptionType:新しい例外を作成します(例: IllegalArgumentException)
  • "Error message":何が問題だったかを記述します

例:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // ここにコードを書いてください
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン