异常
异常是指程序在运行时发生的错误。异常处理机制允许程序在出现错误时进行适当的处理,而不会导致程序崩溃。
1. 异常的种类
检查异常:编译时必须处理的异常,如 IOException
。
运行时异常:程序运行时可能发生的异常,如 NullPointerException
和 ArrayIndexOutOfBoundsException
。这类异常通常不需要强制处理。
错误:严重的问题,通常由JVM引起,如 OutOfMemoryError
。
2. 异常的处理机制
try 块:放置可能抛出异常的代码。
catch 块:捕获并处理异常。
finally 块:无论是否发生异常,都会执行的代码块(可选)。
// 异常处理
public class ExceptionHandlingExample {public static void main(String[] args) {try {int[] numbers = {1, 2, 3};System.out.println(numbers[3]); // 可能抛出 ArrayIndexOutOfBoundsException} catch (ArrayIndexOutOfBoundsException e) {System.out.println("数组索引超出范围: " + e.getMessage());} finally {System.out.println("这是 finally 块,始终会执行。");}}
}import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class FileWriteExample {// 定义一个可能抛出 IOException 的方法public static void writeFile(String fileName, String content) throws IOException {try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {writer.write(content);writer.newLine(); // 换行}}public static void main(String[] args) {try {writeFile("output.txt", "Hello, World!");writeFile("output.txt", "这是一个文件写入示例。");} catch (IOException e) {System.out.println("写入文件时发生错误: " + e.getMessage());}}
}
还可以自定义异常方法
class MyCustomException extends Exception {public MyCustomException(String message) {super(message);}}public class CustomExceptionExample {public static void main(String[] args) {try {throw new MyCustomException("这是自定义异常");} catch (MyCustomException e) {System.out.println(e.getMessage());}}}