一道关于异常的问题,谢谢

zqq7231 2004-09-05 05:29:39
题目是:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. public class Test {
2. public static String output =““;
3.
4. public static void foo(int i) {
5. try {
6. if(i==1) {
7. throw new Exception();
8. }
9. output += “1”;
10. }
11. catch(Exception e) {
12. output += “2”;
13. return; //若没有return的话则输出134234
14. }
15. finally {
16. output += “3”;
17. }
18. output += “4”;
19. }
20.
21. public static void main(String args[]) {
22. foo(0);
23. foo(1);
24.
25. }
26. }
What is the value of the variable output at line 23?
Answer: 13423.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
当执行foo(1)时,catch语句处理这个异常,在catch中,有个return语句,在这里,return之后的执行情况是怎样的,谢谢!!
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqq7231 2004-09-06
  • 打赏
  • 举报
回复
哦,谢了,我还以为不执行finally
江南愚子 2004-09-05
  • 打赏
  • 举报
回复
从catch段return之后会执行finally段!
weimenren 2004-09-05
  • 打赏
  • 举报
回复
当等于0的时间

output = "134";

而后等于1的时间,抛出异常

catch(Exception e) {
output += "2"; // output = 1342

而后执行 finally
output += "3"; // output = 13423


samsung45 2004-09-05
  • 打赏
  • 举报
回复
这是275的一个考题。无论是否有return,都必须先执行finally.你如果不行,自己编译试试。。
july_typhoon 2004-09-05
  • 打赏
  • 举报
回复
我倒记得好像是finally是无论如何要执行的,以完成一些善后的工作
Squall1009 2004-09-05
  • 打赏
  • 举报
回复
return之后的执行情况是怎样的,谢谢!!
return以后就结束了,底下不论是什么也不执行了。
iwantiten 2004-09-05
  • 打赏
  • 举报
回复
你可明白什么是return?
就是从当前函数返回
真是菜啊

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧