例外のスロー
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
チャレンジ
簡単validateAge という名前のメソッドを作成してください。このメソッドは 2 つの引数を受け取ります:
- 検証する整数(
age) - 検証ルールを決定するブール値(
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());
}
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。