finally中不要写return语句

107 阅读1分钟

finally中的return语句会导致异常被压制

public static void main(String[] args) {
    foo();
}

public static void foo() {
    try {
        throw new RuntimeException();
    } finally {
        return;
    }
}

以上代码执行不会有任何异常抛出,如果把finally中的return注释掉,则会抛出如下异常:

Exception in thread "main" java.lang.RuntimeException: 
	at Test.foo(Test.java:9)
	at Test.main(Test.java:4)