33. 例外

33. 例外

0の除算による例外

l:\lesson080\test.java

class test {
    public static void main(String args[]) {
        System.out.println(10 / 0);
    }
}

実行結果

L:\lesson080>java test
Exception in thread "main" java.lang.ArithmeticException: / by zero
at test.main(test.java:3)

例外処理

l:\lesson081\test.java

class test {
    public static void main(String args[]) {
        try {
            System.out.println(10 / 0);
        }
        catch (ArithmeticException err) {
            System.out.println("エラー :" + err);
        }
    }
}

実行結果

L:\lesson081>java test
エラー :java.lang.ArithmeticException: / by zero

finally

l:\lesson082\test.java

class test {
    public static void main(String args[]) {
        try {
            System.out.println(10 / 0);
        }
        catch (ArithmeticException err) {
            System.out.println("エラー :" + err);
        }
        finally {
            System.out.println("Kitty on your lap");
        }
    }
}

実行結果

L:\lesson082>java test
エラー :java.lang.ArithmeticException: / by zero
Kitty on your lap

catchの順番

l:\lesson083\test.java

class test {
    public static void main(String args[]) {
        try {
            first();
        }
        catch (ArithmeticException err) {
            System.out.println("エラー1 :" + err);
        }
        finally {
            System.out.println("無駄無駄無駄無駄ァ");
        }
    }

    static void first() {
        try {
            second();
        }
        catch (ArithmeticException err) {
            System.out.println("エラー2 :" + err);
        }
        finally {
            System.out.println("ウィリィィィィィィィィ");
        }
    }

    static void second() {
        try {
            System.out.println(10 / 0);
        }
        catch (ArithmeticException err) {
            System.out.println("エラー3 :" + err);
        }
        finally {
            System.out.println("裁くのは俺のスレッドだぁ");
        }
    }
}

実行結果

L:\lesson083>java test
エラー3 :java.lang.ArithmeticException: / by zero
裁くのは俺のスレッドだぁ
ウィリィィィィィィィィ
無駄無駄無駄無駄ァ