看段代码先
<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 就会改变
本文通过两个Java示例探讨了在使用try-catch-finally结构时,finally块中return语句的作用及对方法返回值的影响。总结了不管是否有异常发生,finally块总会执行,但是其内部的return并不会改变方法的实际返回值。
172

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



