你得先知道:return是在finally执行后才返回的,且在finally无法改变返回值.
--------------------------------------------------------------------------
再来看看你的代码。这样子你就可能能看明白:
class Test
{
public static void main(String[] args)
{
System.out.println(get());
}
public static int get()
{
int x = 0;
try
{
x += 1;
throw new Exception();
}
catch (Exception e)
{
x +=4;
return x-1;//它的值是在finally执行之后才开始执行的
}
finally
{
System.out.println(++x);//在这里输出是为了让你看的清楚finally执行了,是在return之前。
}
}
}
===========================
如果还是不懂就看看这个例子:
public class Test2 {
public static void main(String[] args) {
// 调用Re()方法并打印输出
int num = Re();
System.out.println(num);
}
// 定义一个静态的Re()方法
public static int Re() {
// 先定义一个int x:并赋初始值
int x = 10;
// 异常处理
try {
System.out.println("try");
x = 20;
// 可能抛异常
throw new Exception();