异常的基本概念
- 异常(Exception):表示程序在执行过程中出现的错误或异常情况。异常通常表示程序的非正常状态,需要处理以防止程序崩溃。
- 错误(Error):表示虚拟机出现的严重问题,通常不应该被程序捕获,如内存溢出(OutOfMemoryError)。通常使用Error类及其子类来表示。
2. 异常类体系
- Throwable:所有错误和异常的根类,分为两个主要子类:- Exception:所有可捕获的异常类的父类。可以分为两种类型:- Checked Exception(检查型异常):必须被显式捕获或声明抛出。例如- IOException、- SQLException。
- Unchecked Exception(运行时异常):不需要被显式捕获或声明抛出。包括- RuntimeException及其子类,如- NullPointerException、- ArithmeticException。
 
- Error:表示程序无法恢复的错误,如- OutOfMemoryError、- StackOverflowError。
 
3. 异常处理
3.1. 异常的抛出(throw)
 
使用 throw 关键字抛出一个异常实例
3.2. 异常的捕获(try-catch)
 
使用 try-catch 语句块来捕获并处理异常
3.3. 异常的处理(finally)
 
finally 块用于执行清理操作,无论是否发生异常都会执行
3.4. 异常的声明(throws)
 
在方法签名中使用 throws 声明该方法可能抛出的异常
4. 自定义异常
你可以创建自己的异常类,通常继承自 Exception 或 RuntimeException:
public class CustomException extends Exception {public CustomException(String message) {super(message);}
}使用自定义异常:
public void validate(int age) throws CustomException {if (age < 0) {throw new CustomException("Age cannot be negative");}
}