下面这段程序的return语句的作用及运行结果是什么?
class Test {
public static String output="";
public Test4() {
}
public static void foo(int i){
try{
if(i==1){
throw new Exception();
}
output+="1";
}catch(Exception e)
{
output+="2";
return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String[] args){
foo(0);
foo(1);
System.out.println(output);
}
}
class Test {
public static String output="";
public Test4() {
}
public static void foo(int i){
try{
if(i==1){
throw new Exception();
}
output+="1";
}catch(Exception e)
{
output+="2";
return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String[] args){
foo(0);
foo(1);
System.out.println(output);
}
}
foo(0);---输出134没什么说的;
foo(1);---由于跑出异常所以将跑到catch中执行语句,虽然有return语句,但此时还不能真正返回,因为还有finally语句没有执行;所以必须把3加上,才执行return语句;结果为23