以下是一些关于 Java 异常处理的基本知识:
1. 抛出异常:
使用 throw 关键字可以在代码中手动抛出异常。通常,我们使用已有的异常类,如 IllegalArgumentException、NullPointerException 等,或者创建自定义异常类。
public class CustomExceptionExample {
// 自定义异常类
static class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
// 方法抛出自定义异常
public static void validateAge(int age) throws CustomException {
if (age < 0) {
throw new CustomException("Age cannot be negative");
}
}
public static void main(String[] args) {
try {
// 调用抛出异常的方法
validateAge(-5);
} catch (CustomException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
2. 捕获异常:
使用 try-catch 语句块可以捕获并处理异常。catch 语句用于指定要捕获的异常类型,并定义处理异常的代码块。
public class CatchExceptionExample {
public static void main(String[] args) {
try {
// 可能会引发异常的代码
int result = 10 / 0;
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
// 捕获并处理异常
System.out.println("Caught ArithmeticException: " + e.getMessage());
} finally {
// finally 块中的代码始终会被执行,不论是否发生异常
System.out.println("Finally block");
}
}
}
3. 多重捕获:
一个 try 块可以有多个 catch 块,用于处理不同类型的异常。
public class MultiCatchExample {
public static void main(String[] args) {
try {
// 可能会引发异常的代码
String str = null;
System.out.println(str.length());
} catch (NullPointerException e) {
System.out.println("Caught NullPointerException: " + e.getMessage());
} catch (ArithmeticException e) {
System.out.println("Caught ArithmeticException: " + e.getMessage());
} catch (Exception e) {
// Exception 类型的 catch 块可以捕获所有异常
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
4. 自动关闭资源(try-with-resources):
Java 7 引入了自动关闭资源的功能,通过 try-with-resources 语句,可以自动关闭实现了 AutoCloseable 或 Closeable 接口的资源,如文件、网络连接等。
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;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("Caught IOException: " + e.getMessage());
}
}
}
这些是关于 Java 异常处理的一些基本概念和示例。异常处理是 Java 编程中非常重要的一部分,它能够使程序更加健壮并更容易调试。
转载请注明出处:http://www.zyzy.cn/article/detail/422/Java