Tbpgr Blog

Recruiting Operations tbpgr(てぃーびー) のブログ

書籍 Effective Java | 標準例外を使用する

パンくず

Effective Java
標準例外を使用する

概要

標準例外を使用する

標準例外を使用する利点

APIの利用が用意になる
・見慣れた例外で統一されるため可読性が上がる
・例外のクラス数が少なくなるためメモリ量が節約される

頻出例外

例外 使用する機会
IllegalArgumentException パラメータ指定が不適切
IllegalStateException メソッド呼び出しに対してオブジェクト状態が不正
NullPointerException パラメータ値が禁止されているnull
IndexOutOfBoundsException インデックスパラメータ値が範囲外
ConcurrentModificationException 禁止されているオブジェクトの並行した変更を検出
UnsupportedOperationException オブジェクトがメソッドをサポートしていない

使用例

package effective.creation.chapter9;

import java.util.Arrays;

public class SampleNo60 {
    public static void main(String[] args) {
        for (String hoge : Arrays.asList("hoge", "hage", "", null)) {
            doHoge(hoge);
        }
    }

    private static void doHoge(String string) {
        try {
            printHoge(string);
        } catch (Exception e) {
            System.out.println(e.getClass());
            System.out.println(e.getMessage());
        }
    }

    private static void printHoge(String string) {
        if (string == null) {
            throw new NullPointerException("null hoge");
        }
        if (string == "" || !string.equals("hoge")) {
            throw new IllegalArgumentException("illegal hoge");
        }
        System.out.println(string);
    }
}

出力

hoge
class java.lang.IllegalArgumentException
illegal hoge
class java.lang.IllegalArgumentException
illegal hoge
class java.lang.NullPointerException
null hoge