在 Java 开发中,异常处理是一个至关重要的环节。良好的异常处理机制可以使得程序更加健壮,易于维护。
异常分类
Java 中的异常分为两大类:Exception
和 Error
。
Exception
:表示程序正常运行中出现的错误,可以被捕获和处理。Error
:表示严重的系统错误,通常情况下,程序无法恢复,如OutOfMemoryError
。
检查型异常(Checked Exception)
检查型异常是在编译时必须被处理的异常,例如 IOException
、SQLException
等。
try {
// 可能抛出检查型异常的代码
} catch (IOException e) {
// 处理异常
}
运行时异常(Runtime Exception)
运行时异常是在程序运行过程中出现的异常,不需要显式捕获和处理。例如 NullPointerException
、IndexOutOfBoundsException
等。
// 可能抛出运行时异常的代码
异常处理机制
Java 异常处理主要通过 try...catch
语句实现。
try {
// 可能抛出异常的代码
} catch (ExceptionType e) {
// 异常处理
} finally {
// 无论是否发生异常,都会执行的代码
}
异常链
在捕获异常时,可以将当前捕获的异常封装到一个新的异常中,从而形成异常链。这有助于追踪异常的来源。
try {
// 可能抛出异常的代码
} catch (Exception e) {
throw new RuntimeException("自定义异常信息", e);
}
示例:文件读取
以下是一个简单的文件读取示例,演示了异常处理的基本用法。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("文件读取错误:" + e.getMessage());
}
}
}