在Java测试中处理异常,通常使用JUnit框架进行单元测试
try-catch
语句捕获异常:@Test
public void testMethod() {
try {
// 调用可能抛出异常的方法
} catch (Exception e) {
// 对异常进行处理,例如:验证异常类型、消息等
}
}
assertThrows
方法验证预期异常:import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
public void testMethod() {
// 验证方法是否抛出预期的异常类型
assertThrows(ExpectedExceptionType.class, () -> {
// 调用可能抛出异常的方法
});
}
@Test
注解的expected
属性来验证预期异常:import org.junit.Test;
public class MyTest {
@Test(expected = ExpectedExceptionType.class)
public void testMethod() {
// 调用可能抛出异常的方法
}
}
ExpectedException
规则(JUnit 4):import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class MyTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testMethod() {
// 验证方法是否抛出预期的异常类型和消息
thrown.expect(ExpectedExceptionType.class);
thrown.expectMessage("Expected exception message");
// 调用可能抛出异常的方法
}
}
assertThrows
与Lambda表达式结合:import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
public void testMethod() {
// 验证方法是否抛出预期的异常类型和消息
ExpectedExceptionType exception = assertThrows(ExpectedExceptionType.class, () -> {
// 调用可能抛出异常的方法
});
// 可以进一步验证异常的属性,例如消息
assertEquals("Expected exception message", exception.getMessage());
}
根据你的需求和测试场景,可以选择最适合的方法来处理Java测试中的异常。