返回Java异常

时间:2014-02-02 14:44:45

标签: java exception

public class TestException {

    int m1() {

        try {
            int i = 10, j = 0;
            System.out.println("s1");
            i = i / j;
            return 11;
        } catch (Exception e) {
            System.out.println("s2");
        } finally {
            System.out.println("s3");
        }

        System.out.println("s4");
        return 2222;
    }

    public static void main(String[] args) {
        System.out.println(new TestException().m1());
    }
}

O / P: -

s1
s2
s3
s4
2222

为什么在s3之前s4

在方法返回之前是不是finally被调用了?

我在这里缺少什么?

3 个答案:

答案 0 :(得分:6)

因为,试试的流程终于阻止了

enter image description here

答案 1 :(得分:1)

  

是不是在方法返回之前调用了吗?

保证

Finally在执行try catch块后立即运行。不在方法的最后。

简而言之,它与try-catch无关,与方法无关。

答案 2 :(得分:0)

你不应该将任何数字除以0.这似乎是抛出异常的原因。

finally()被调用,无论是否抛出异常,紧接在try / catch块之后和任何其他块之前。