黑马程序员技术交流社区

标题: 有趣的一题! [打印本页]

作者: jiangwenjun    时间: 2015-2-13 02:32
标题: 有趣的一题!
不运行,可以告诉我结果吗?:lol
  1. public class TestException {  
  2.     public TestException() {  
  3.     }  
  4.   
  5.     boolean testEx() throws Exception {  
  6.         boolean ret = true;  
  7.         try {  
  8.             ret = testEx1();  
  9.         } catch (Exception e) {  
  10.             System.out.println("testEx, catch exception");  
  11.             ret = false;  
  12.             throw e;  
  13.         } finally {  
  14.             System.out.println("testEx, finally; return value=" + ret);  
  15.             return ret;  
  16.         }  
  17.     }  
  18.   
  19.     boolean testEx1() throws Exception {  
  20.         boolean ret = true;  
  21.         try {  
  22.             ret = testEx2();  
  23.             if (!ret) {  
  24.                 return false;  
  25.             }  
  26.             System.out.println("testEx1, at the end of try");  
  27.             return ret;  
  28.         } catch (Exception e) {  
  29.             System.out.println("testEx1, catch exception");  
  30.             ret = false;  
  31.             throw e;  
  32.         } finally {  
  33.             System.out.println("testEx1, finally; return value=" + ret);  
  34.             return ret;  
  35.         }  
  36.     }  
  37.   
  38.     boolean testEx2() throws Exception {  
  39.         boolean ret = true;  
  40.         try {  
  41.             int b = 12;  
  42.             int c;  
  43.             for (int i = 2; i >= -2; i--) {  
  44.                 c = b / i;  
  45.                 System.out.println("i=" + i);  
  46.             }  
  47.             return true;  
  48.         } catch (Exception e) {  
  49.             System.out.println("testEx2, catch exception");  
  50.             ret = false;  
  51.             throw e;  
  52.         } finally {  
  53.             System.out.println("testEx2, finally; return value=" + ret);  
  54.             return ret;  
  55.         }  
  56.     }  
  57.   
  58.     public static void main(String[] args) {  
  59.         TestException testException1 = new TestException();  
  60.         try {  
  61.             testException1.testEx();  
  62.         } catch (Exception e) {  
  63.             e.printStackTrace();  
  64.         }  
  65.     }  
  66. }  
复制代码




作者: wenyu    时间: 2015-2-13 12:47
i=2
i=1
testEx2, catch exception
testEx2, finally; return value=false

testEx1, finally; return value=false

testEx, finally; return value=false
作者: major2015    时间: 2015-4-12 14:10
不能被不同函数中同名变量搞糊了,再就是i/0会抛异常
作者: sisel    时间: 2015-4-13 09:51
本帖最后由 sisel 于 2015-4-13 09:56 编辑

2,1 ,false,true,false,testEx2, catch testEx2, finally testEx1, catch testEx1, finally testEx, catch testEx, finally --printStackTrace
<<上面的判断错了。。。

1楼无误

作者: zhangjialin    时间: 2015-4-13 21:56
好复杂的程序,丝毫不动
作者: jiangwenjun    时间: 2015-4-13 22:57
zhangjialin 发表于 2015-4-13 21:56
好复杂的程序,丝毫不动

这个嘛!证明要不你没有看到这个知识点,要不你没有把关键的点看出来!!!加油喔!!!:hug:
作者: Im海洋    时间: 2015-4-27 07:15
看不懂,还没学到这个地方




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2