看段代码先
<pre name="code" class="java">public class Test1 {
public static void main(String[] args) {
// TOD Auto-generated method stub
System.out.println(print());
}
public static String print(){
String s="begin";
try{
s="try";
System.out.println("try-->");
return s;
}catch (Exception e) {
}finally{
s="finally";
System.out.println("finnaly-->");
// return s;
}
return s;
}
}
结果
try-->
finnaly-->
try
注释取消
public class Test1 {
public static void main(String[] args) {
// TOD Auto-generated method stub
System.out.println(print());
}
public static String print(){
String s="begin";
try{
s="try";
System.out.println("try-->");
return s;
}catch (Exception e) {
}finally{
s="finally";
System.out.println("finnaly-->");
return s;
}
// return s;
}
}
结果
try-->
finnaly-->
finally
总结下: 不管怎样,在返回前,fanally 总会执行,但不改变s(为什么? 求解) 如何有return 就会改变