您的位置:首页 > 编程语言 > Java开发

Java中的异常执行顺序

2015-08-13 13:59 447 查看
finally 模块会在try模块的return执行之前执行
例如
public class Test {
public static int testFinally1() {
int result = 1;
try {
result = 2;
System.out.println("Try "+result);
return result;
} catch (Exception e) {
return 0;
} finally {
result = 3;
System.out.println("finally "+result);
System.out.println("execute finally 1");

}

}

public static StringBuffer testFinally2() {
StringBuffer s = new StringBuffer("Hello");
try {
return s;
} catch (Exception e) {
return null;
} finally {
s.append(" World");
System.out.println("execute finally 2");
}
}

public static void main(String[] args) {
int resultVal = testFinally1();
System.out.println(resultVal);
StringBuffer resultRef = testFinally2();
System.out.println(resultRef);
}

}

result:
Try 2
finally 3
execute finally 1
2
execute finally 2
Hello World
2:如果有异常,则finally模块不会被执行
3:如果在try模块中强制执行了推出, 则finally模块也不会被执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: