2011年2月19日土曜日

JDK7の複数例外の捕捉

JDK7の新機能の1つである、複数例外の捕捉をためしてみた。
public class Test {
    public static void main(String[] args) {
        try {
            m1();
            m2();
        // 複数例外を補足する場合は、パイプ(|)で
        // 対象の例外クラスをつなげてあげる。
        } catch (Hoge1Exception | Hoge2Exception e) {
            e.printStackTrace();
        }
    }

    private static void m1() throws Hoge1Exception {
        throw new Hoge1Exception();
    }

    private static void m2() throws Hoge2Exception {
        throw new Hoge2Exception();
    }

    private static class Hoge1Exception extends Exception {

    }

    private static class Hoge2Exception extends Exception {

    }
}
JDK6までだとこんな感じになってしまうんだよね。
try {
    // 処理
} catch (Hoge1Exception e) {
    e.printStackTrace();
} catch (Hoge2Exception e) {
    e.printStackTrace();
}