今天考java有一条题目我错了,回来试试,才知道我的java还有好多细节没注意。
        public class Test {
public static String str = "";
public static void fun(int i) {
try {
if(i == 1) {
throw new Exception();
}
str += "1";

} catch (Exception e) {
// TODO: handle exception
str += "2";
return;
}finally{

str += "3";
}
str += "4";
}
public static void main(String[] args) {
fun(0);
fun(1);
System.out.println(str);
}


}

问最后打印的结果,我的答案是1342,可是实际是13423。
 我的错误时认为在catch中return之后,就从此处应该退出这个方法了,可是实际是你必须还得把finally中的代码执行一遍。


还有注意的是,try块的时候,有异常抛出,则从抛出异常处跳出try块,开始查找匹配的catch。

我的四分啊.....可是这道题很不错!

04-15 18:29