java Exception的一个测试_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java Exception的一个测试

java Exception的一个测试

 2016/8/22 5:31:05  elena_me  程序员俱乐部  我要评论(0)
  • 摘要:/***1、不管try块、catch块中是否有return语句,finally块都会执行。*2、finally块中的return语句会覆盖前面的return语句(try块、catch块中的return语句),*所以如果finally块中有return语句,*Eclipse编译器会报警告“finallyblockdoesnotcompletenormally”。*3、如果finally块中包含了return语句,即使前面的catch块重新抛出了异常
  • 标签:测试 Java 一个
class="java">
/**
 * 1、不管try块、catch块中是否有return语句,finally块都会执行。
 * 2、finally块中的return语句会覆盖前面的return语句(try块、catch块中的return语句),
 *   所以如果finally块中有return语句,
 *   Eclipse编译器会报警告“finally block does not complete normally”。
 * 3、如果finally块中包含了return语句,即使前面的catch块重新抛出了异常,则调用该方法的语句也不会获得catch块重新抛出的异常,
 *   而是会得到finally块的返回值,并且不会捕获异常。
 * @author Administrator
 *
 */
public class TestEx {  
    public TestEx() {  
    }  
  
    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) {  
        TestEx testException1 = new TestEx();  
        try {  
            testException1.testEx();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  
发表评论
用户名: 匿名