今天遇到个题,有点不明白,各位大虾帮帮忙
原题:
public class A{
String get(){
try{
return "a";
}
finally{
return "b";
}
}
public static void main(String args[]){
A a = new A();
System.out.println(a.get) }
}程序运行结果为 b
但是问什么呢????
原题:
public class A{
String get(){
try{
return "a";
}
finally{
return "b";
}
}
public static void main(String args[]){
A a = new A();
System.out.println(a.get) }
}程序运行结果为 b
但是问什么呢????
除非你的try块直接System.exit();
还有不要让受检查传播到finally块外。
String get(){
try{
System.exit(0);
}
finally{
return "b";
}
}
public static void main(String args[]){
A a = new A();
System.out.println(a.get()); //这边楼主写错了,方法忘记加()了。 } }对System.exit(0);程序退出是不执行的。
我知道finally会最后执行,呵呵。
是不是finally中的return语句将前面try中的return覆盖,最后只输出 b。谢谢。。