package com.bugyun.face;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Question {
public static void main(String[] args) {
int i = exceptionReturn();
System.err.println(i);
}
/**
* 测试 throw 、 return 、 finally 的执行顺序
* 执行顺序:
* throw -> catche -> return -> finally
* 方法返回的值是2
* @return
* @author beyond
* @data:2017年5月31日上午9:57:39
*/
public static int exceptionReturn(){
int i = 1;
try {
System.out.println(" throw 部分");
throw new Exception();
} catch (Exception e) {
System.out.println(" catch 部分 ");
return ++i;
}finally {
System.out.println(" finally 部分 begin , i = "+i);
++i;
System.out.println(" finally 部分 end , i = "+i);
}
}
}
调用方法返回值2,的顺序不稳定,但其他执行顺序稳定

本文通过一个示例程序详细解析了Java中throw、catch、return及finally的执行顺序,并展示了方法返回值的变化情况。
4169

被折叠的 条评论
为什么被折叠?



