public class smallT
{
public static void main(String args[])
{
smallT t = new smallT();
int b = t.get();
System.out.println(b);
}
public int get()
{
try
{
return 1 ;
}
finally
{
return 2 ;
}
}
}
输出结果是:2。
这个程序还是刚才介绍的return语句和finally块的顺序问题。
Java会把return语句先执行完、把所有需要处理的东西都先处理完成,需要返回的值也都准备好之后,但是还未返回之前,程序流程会转去执行finally块。但如果在执行finally块时遇到了return语句,程序将会直接使用finally块中的return语句来返回——因此上面程序将会输出2。