Java

例外処理とテスト

失敗の原因を読み、想定内の失敗へ対応し、結果を自動で確認しましょう。

Java入門の講座一覧

01

スタックトレースを読む

例外名と説明を読み、ファイル名と行番号から自分のコードを探します。

失敗するコードJAVA
int[] scores = {80, 90};
System.out.println(scores[2]);
表示例OUTPUT
ArrayIndexOutOfBoundsException
Index 2 out of bounds for length 2
02

想定できる失敗を処理する

try-catchJAVA
try {
    int number = Integer.parseInt("abc");
    System.out.println(number * 2);
} catch (NumberFormatException e) {
    System.out.println("整数を入力してください");
} finally {
    System.out.println("処理を終了します");
}
実行結果OUTPUT
整数を入力してください
処理を終了します
03

不正な値を知らせる

受け付けられない値にはIllegalArgumentExceptionを投げます。

割引計算JAVA
static int discount(int price, int percent) {
    if (price < 0 || percent < 0 || percent > 100) {
        throw new IllegalArgumentException("値の範囲が不正です");
    }
    return price * (100 - percent) / 100;
}
実行結果OUTPUT
discount(2000, 10) = 1800
IllegalArgumentException: 値の範囲が不正です
04

JUnit 5で自動テストする

PriceTest.javaJAVA
assertEquals(1800, Price.discount(2000, 10));
assertThrows(IllegalArgumentException.class,
    () -> Price.discount(2000, 101));
実行結果OUTPUT
Tests run: 2, Failures: 0, Errors: 0
BUILD SUCCESS