- 异常的分类
Java中的异常可以分为两大类:
已检查异常(Checked Exceptions):这些异常在编译时被检查,程序员必须在代码中显式地处理它们,例如IOException、SQLException等。如果不处理,会导致编译错误。
未检查异常(Unchecked Exceptions):这些异常在运行时出现,程序员可以选择不处理,例如NullPointerException、ArrayIndexOutOfBoundsException等。这些异常通常是由程序逻辑错误导致的。 - 异常的抛出
当程序出现错误时,可以通过throw关键字抛出一个异常。例如:throw new IllegalArgumentException("参数不合法");用户可以自定义异常类,继承自Exception或RuntimeException。 - 异常的捕获
在Java中,可以使用try-catch语句来捕获异常。基本语法如下:
try {
// 可能抛出异常的代码块
} catch (ExceptionType e) {
// 处理异常的代码
} finally {
// 无论是否发生异常,都会执行的代码(可选)
try块:包含可能会抛出异常的代码。
catch块:捕获并处理特定类型的异常。
finally块:可选,始终执行(如关闭资源等清理工作)。 - 多个catch块
可以在一个try语句中使用多个catch块来捕获不同类型的异常:
try {
// 代码
} catch (IOException e) {
// 处理IO异常
} catch (NullPointerException e) {
// 处理空指针异常
}
} - throws 关键字
在方法声明中,可以使用throws关键字来声明该方法可能抛出的异常:
public void myMethod() throws IOException {
// 方法体
} - 自定义异常
可以通过继承Exception或RuntimeException类来自定义异常类。例如:
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}