黑马程序员技术交流社区
标题:
异常
[打印本页]
作者:
lts0616
时间:
2015-12-30 19:54
标题:
异常
public class Demo_Finally {
public static void main(String[] args) {
foo(1); //输出结果是?
foo(2); //输出结果是?
System.out.println(output);
}
public static String output = "";
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";
}
求分析?看不懂
作者:
隔壁老猫
时间:
2015-12-30 22:02
foo(1); output变成了23
i == 1 成立, 抛出异常, 直接catch住, 不走output +="1";
output += "2"; //output变成"2"
return; //建立了返回通道, 检查发现有finally需要执行, 所以还没有跳出
finally { output += "3"; } //output变成"23" finally执行结束, 方法结束. 没有执行到 output += "4";
foo(2);
i != 1; // throw new Exception(); 不执行
output += "1"; // output变成 "231"
catch (Exception e) { output += "2";} //程序没出错 不走catch
finally { output += "3"; } // output变成 "2313"
output += "4"; //output变成 "23134" 方法结束
System.out.println(output); //23134
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2