java异常处理机制
2017-05-21 23:47
281 查看
public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Exception e) { System.out.println("testEx, catch exception"); ret = false; throw e; } finally { System.out.println("testEx, finally; return value=" + ret); return ret; } } boolean testEx1() throws Exception { boolean ret = true; try { ret = testEx2(); if (!ret) { return false; } System.out.println("testEx1, at the end of try"); return ret; } catch (Exception e) { System.out.println("testEx1, catch exception"); ret = false; throw e; } finally { System.out.println("testEx1, finally; return value=" + ret); return ret; } } boolean testEx2() throws Exception { boolean ret = true; try { int b = 12; int c; for (int i = 2; i >= -2; i--) { c = b / i; System.out.println("i=" + i); } return true; } catch (Exception e) { System.out.println("testEx2, catch exception"); ret = false; throw e; } finally { System.out.println("testEx2, finally; return value=" + ret); return ret; } } public static void main(String[] args) { TestException testException1 = new TestException(); try { testException1.testEx(); } catch (Exception e) { e.printStackTrace(); } } }
答案是:
i=2
i=1
testEx2, catch exception
testEx2, finally; return value=false
testEx1, finally; return value=false
testEx, finally; return value=false
原因:当你在finally中用了return语句,此时会忽略掉try和catch中的return语句和抛出的异常。
参考自:深入理解java异常处理机制
相关文章推荐
- 关于java异常处理机制的深入理解
- JAVA异常处理机制
- Java中的异常处理机制
- java的异常处理机制
- Java异常处理机制的详细讲解和使用技巧
- java异常处理机制的深入理解
- Java中的异常处理机制
- Java中的异常处理机制
- 请描述Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- Java的异常处理机制的一个例子-读后定能对异常理解深刻
- Java中的异常处理机制
- JAVA异常机制介绍/如何正确的进行JAVA异常处理
- Java异常处理机制的详细讲解和使用技巧
- Java异常处理及异常机制介绍
- Java异常处理及异常机制介绍
- Java 和 .Net 在异常处理机制上的区别
- Java中的异常处理机制综合
- 理解Java异常处理机制——Java异常处理的一个综合实例
- Java中的异常处理机制的简单原理和应用
- Java中的异常处理机制的简单原理和应用。