1. 基本的异常处理结构:
try {
// 可能引发异常的代码
// 例如,读取文件、连接数据库等
} catch (ExceptionType1 ex1) {
// 处理第一种类型的异常
// 例如,文件不存在异常
} catch (ExceptionType2 ex2) {
// 处理第二种类型的异常
// 例如,数据库连接异常
} finally {
// 不论是否发生异常,都会执行的代码块
// 通常用于资源的释放
}
2. 抛出异常:
public class CustomExceptionExample {
public static void main(String[] args) {
try {
// 调用可能抛出异常的方法
validateAge(15);
} catch (InvalidAgeException e) {
System.out.println("Exception caught: " + e.getMessage());
}
}
// 方法可能抛出自定义异常
static void validateAge(int age) throws InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Age must be 18 or older.");
}
// 其他处理逻辑
}
}
// 自定义异常类
class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
3. 多异常捕获:
public class MultiCatchExample {
public static void main(String[] args) {
try {
// 可能引发多种异常的代码
String str = null;
System.out.println(str.length());
} catch (NullPointerException | ArithmeticException ex) {
// 同时捕获多种异常类型
System.out.println("Exception caught: " + ex.getClass().getSimpleName());
}
}
}
4. 使用 finally 块:
public class FinallyExample {
public static void main(String[] args) {
try {
// 可能引发异常的代码
int result = 10 / 0;
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("ArithmeticException caught: " + e.getMessage());
} finally {
// 不论是否发生异常,都会执行的代码块
System.out.println("Finally block executed.");
}
}
}
5. 自动资源管理(try-with-resources):
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TryWithResourcesExample {
public static void main(String[] args) {
// 使用 try-with-resources 语句,自动关闭资源
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (IOException e) {
System.out.println("IOException caught: " + e.getMessage());
}
}
}
这些是Java中异常处理的基本概念和一些示例。异常处理是确保程序稳定性和可靠性的重要部分。
转载请注明出处:http://www.zyzy.cn/article/detail/13479/Java