《Java开发十日速成:零基础保姆级教程(附20000字实战+流程图)》
副标题:挑战高薪!十天掌握Java核心技能,小白也能写出企业级代码
Day4:异常处理与单元测试
学习目标:
- 掌握Java异常体系与异常处理的最佳实践
- 理解单元测试的基本概念及JUnit 5的使用方法
- 完成实战项目:用户注册功能的异常处理链
4.1 Java异常体系
异常分类
Java中的异常分为两类[[3]]:
- 受检异常(Checked Exception):必须显式处理,如
IOException
- 非受检异常(Unchecked Exception):运行时异常,如
NullPointerException
代码示例:
// 受检异常示例
try {
FileInputStream file = new FileInputStream("test.txt");
} catch (FileNotFoundException e) {
System.out.println("文件未找到:" + e.getMessage());
}
// 非受检异常示例
int[] arr = new int[5];
System.out.println(arr[10]); // 抛出ArrayIndexOutOfBoundsException
异常处理最佳实践
- 捕获异常后记录日志:避免直接打印堆栈信息[[8]]
- 自定义异常类:便于区分业务异常和系统异常
代码示例:
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
try {
validateAge(15);
} catch (CustomException e) {
System.out.println("错误:" + e.getMessage());
}
}
public static void validateAge(int age) throws CustomException {
if (age < 18) {
throw new CustomException("年龄不足18岁");
}
}
}
4.2 单元测试入门
JUnit 5基础
- 定义:JUnit是一个流行的Java单元测试框架[[9]]
- 注解说明:
@Test
:标记测试方法@BeforeEach
:在每个测试方法前执行@AfterEach
:在每个测试方法后执行
代码示例:
import org.junit.jupiter.api.*;
public class CalculatorTest {
@BeforeEach
void setUp() {
System.out.println("测试开始前准备...");
}
@Test
void testAdd() {
Calculator calculator = new Calculator();
Assertions.assertEquals(5, calculator.add(2, 3));
}
&#