异常
定义
程序运行中出现的不期而至的各种状况,会影响正常的程序执行流程
Java 将 异常 当作 对象进行处理
体系结构
Throwable
Error
VirtulMachineError
StackOverFlowError
OutOfMemoryError
AWTError
Exception
IOException
EOFException
FileNotFoundException
RuntimeException
ArrithmeticException
MissingResourceException
ClassNotFoundException
NullPointerException
IllegalArgumentException
ArrayIndexOutOfBoundsException
UnkownTypeException
Error : 由 Java虚拟机生成并抛出 ->程序不可查
Exception:由程序逻辑错误引起的。
Java异常处理机制
抛出异常
当方法处理不了异常时,则需抛出异常
语法形式:
void run() throws xxxException{
//....
}
处理异常
语法形式:
try{
//监控区域
}catch(xxxException e){ //catch可多个、即捕获多个异常
//处理异常
}finally{ //可省略
//处理善后处理,无论有没有异常,都会执行
}
自定义异常
自定义异常 只需要 继承 Exception 类
方法步骤:
1.创建自定义异常类
2.方法体 throw 异常
3. try-catch 捕获并处理异常
eg:
//Test类
public class Test {
//main方法
public static void main(String[] args) {
try {
test(23);
} catch (MyException e) {
System.out.println(e); // 异常的toString=>MyException{23}
}
}
static void test(int num) throws MyException {
if(num > 20){
throw new MyException(num);
}
System.out.println(num + " 合格");
}
}
//自定义异常类
class MyException extends Exception{
//传递数字 >20 抛出异常
private int detail;
public MyException(int num){
detail = num;
}
@Override
public String toString() {
return "MyException{"+ detail + '}';
}
}