`

java Exception的一个测试

阅读更多
/**
 * 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();  
        }  
    }  
}  
分享到:
评论

相关推荐

    aop+exception的测试代码

    4. **编写测试方法**:在测试类中,创建一个会抛出异常的方法,并使用断言确保AOP通知被正确执行。 总结一下,"aop+exception"的测试代码主要涉及Spring AOP中的异常处理,可能涵盖了定义切面、通知、事务管理和...

    Java单元测试Java单元测试Java单元测试Java单元测试

    Mockito是一个流行的Java mock库,它允许我们创建模拟对象,以便在测试中控制它们的行为。 6. **测试覆盖率**:工具如JaCoCo或Cobertura可以衡量代码被测试的程度,帮助开发者了解哪些部分的代码尚未被充分测试。 ...

    Java单元测试之JUnit篇

    新建一个项目叫JUnitTest,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。 首先,我们编写一个Calculator类: ```java public class Calculator ...

    java程序员白盒单元测试必备技能 -- Junit4

    例如,`@Test`注解表示一个方法是测试方法,`@Before`和`@After`分别用于在每个测试方法之前和之后执行初始化和清理操作。 2. **异常测试**:使用`@Test(expected = Exception.class)`可以指定测试方法应该抛出特定...

    java测试新技术-TestNG和高级概念

    TestNG是Java领域的一个新兴的测试框架,它是"Testing Next Generation"的缩写,意为下一代测试技术。TestNG与传统的JUnit测试框架不同,它提供了更多高级的测试功能,比如并行测试、参数化测试、测试依赖管理、灵活...

    IKM在线测试 JAVA 88题带参考答案

    最新最全的IKM在线测试题库,增加如下内容: spring ioc hibernate multiple questions Concurrency/Threadpool Exceptions HQL Query interface, Criteria in Hibernate SimpleDateFormat

    Java单元测试相关的两个jar包

    JUnit是一个流行的Java单元测试框架,由Ernst Bier和Kent Beck在1997年创建,目前发展到第4版本(4.12)。JUnit 4引入了许多新特性,如注解(annotations)、参数化测试、异常测试、测试规则等,使得编写和组织测试...

    exception 测试

    在进行“exception测试”时,我们通常会编写测试用例来模拟可能导致异常的情况,以确保程序能够正确处理这些异常。这包括: - 验证是否正确抛出了预期的异常类型。 - 检查异常消息是否包含足够的信息帮助调试。 - ...

    编写一个JAVA的队列类

    ### 编写一个JAVA的队列类 #### 概述 队列是一种基本的数据结构,遵循先进先出(FIFO)原则,即最先加入队列的元素将最先被移除。队列通常用于多线程编程、任务调度、缓存管理等场景。本文将详细介绍如何在Java中...

    Java开发技术大全(500个源代码).

    ColoredPoint.java 一个测试用子类 common.java 一个公用类 derive.java 一个测试用子类 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 ...

    Java测试新技术TestNG和高级概念 (英文版 清晰pdf 可下载)

    TestNG是Java测试领域的一款重要框架...对于任何希望提升Java测试技能,特别是对自动化测试感兴趣的开发者来说,这是一个宝贵的资源。通过学习TestNG,你将能够构建更高效、更健壮的测试框架,确保软件的质量和稳定性。

    JAVA 上机实践实验6算术测试

    9. **算术表达式**:一个复杂的算术表达式可能包含多个操作符和操作数,例如 `int x = (a + b) * (c - d) / e;` 这样的表达式需要根据运算符的优先级和结合性来正确解析。 10. **变量作用域**:在进行上机实践时,...

    单元测试之道java版:使用junit

    JUnit是一个开源的Java库,专门用于编写和运行Java程序的单元测试。它提供了丰富的注解、断言方法和测试套件管理,使得测试代码编写简洁,易于理解和维护。首先,让我们了解JUnit的核心概念和关键特性: 1. **测试...

    JAVA基础测试中常见的异常问题汇总

    下面将深入探讨在Java基础测试中常见的异常问题及其解决方案,尤其关注那些在执行基本Java程序时可能遇到的异常情况。 ### 1. "java' is not recognized as an internal or external command 这种情况通常发生在...

    java 单元测试(英文)

    Java单元测试是软件开发过程中的一个关键环节,它主要用于验证代码的各个独立模块是否按预期工作。JUnit是Java领域中最广泛使用的单元测试框架,它提供了一套简洁且强大的API来编写和运行测试用例。 首先,我们需要...

    java一下测试题目和答案

    - **继承**:一个类可以继承另一个类的属性和方法,实现代码复用。Java只支持单继承,但可以使用接口实现多重继承的效果。 - **多态**:多态允许子类对象可以被当作父类对象处理,提供了一种灵活的设计方式,增强...

    JUnit 是一个用于 Java 编程语言的单元测试框架

    5. **异常测试(Exception Testing)**:可以使用 `expected` 属性指定一个期望抛出的异常类型,如果测试方法没有抛出预期的异常,测试将失败。 6. **超时测试(Timeouts)**:可以为测试方法设定超时限制,如果...

    IKM在线测试 JAVA 带参考答案

    为了满足生成详细知识点的要求,我们将基于这些信息,构建一个假设的情境,并围绕JAVA相关的知识点进行展开。 ### IKM在线测试JAVA知识点解析 #### 1. 基础概念 - **Java语言简介**:Java是一种广泛使用的面向对象...

    javaweb中.java文件测试需要的框架(junit测试).rar

    JUnit是一个流行的、开源的Java单元测试框架,它使得开发者能够方便地编写和执行针对Java类的测试用例。本压缩包文件"javaweb中.java文件测试需要的框架(junit测试).rar"显然是为了帮助开发者理解如何在Java Web...

Global site tag (gtag.js) - Google Analytics