当前位置:首页 > Java

java异常如何验证

2026-03-18 08:40:12Java

验证 Java 异常的方法

使用 JUnit 的 assertThrows

JUnit 5 提供了 assertThrows 方法,可以明确验证代码是否抛出预期的异常。语法如下:

@Test
void testException() {
    assertThrows(ExpectedException.class, () -> {
        // 可能抛出异常的代码
    });
}

使用 try-catch 手动捕获

通过手动捕获异常并验证其类型和消息,可以更灵活地处理异常情况:

@Test
void testExceptionManually() {
    try {
        // 可能抛出异常的代码
        fail("Expected exception not thrown");
    } catch (ExpectedException e) {
        assertEquals("Expected error message", e.getMessage());
    }
}

使用 Mockito 验证异常

在测试依赖注入或模拟对象时,Mockito 可以用于验证异常行为:

@Test
void testMockitoException() {
    SomeService mockService = mock(SomeService.class);
    when(mockService.someMethod()).thenThrow(new ExpectedException("Error"));

    assertThrows(ExpectedException.class, () -> mockService.someMethod());
}

验证异常链

对于嵌套异常或异常链的情况,可以通过检查 getCause 方法验证根本原因:

@Test
void testExceptionCause() {
    Exception exception = assertThrows(RuntimeException.class, () -> {
        // 抛出异常的代码
    });
    assertTrue(exception.getCause() instanceof ExpectedCauseException);
}

使用自定义断言

对于复杂的异常验证逻辑,可以封装自定义断言方法:

public static void assertException(Class<? extends Throwable> expectedType, 
                                  Executable executable, 
                                  String expectedMessage) {
    Throwable thrown = assertThrows(expectedType, executable);
    assertEquals(expectedMessage, thrown.getMessage());
}

验证异常属性

除了类型和消息外,还可以验证异常的其他属性,如错误代码或自定义字段:

java异常如何验证

@Test
void testExceptionProperties() {
    CustomException exception = assertThrows(CustomException.class, () -> {
        // 抛出异常的代码
    });
    assertEquals(123, exception.getErrorCode());
}

标签: 异常java
分享给朋友:

相关文章

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…

如何学习java语言

如何学习java语言

学习Java语言的系统方法 理解基础概念 Java是一种面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制流语句(if-else、循环)是第一步。熟悉类和对象的概念,理解封装、继承和多态三…

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int absolute…