异常
执行过程发生的异常事件分类
1)Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重状况。比如:Stack OverflowError[栈溢出] 和OOM 内存溢出
2)Exception:其他因编译错误或者偶然的外在因素导致的一般问题,常见的空指针等。
Exception
可分为运行时异常(程序运行时发生的异常)和编译时异常(编译时编译器检查出的异常)
常见的运行时异常(不处理默认throws)
1.NullPointerException 空指针
2.ArithmeticException 数学算数
3.ArrayIndexOutOfBoundsException 数组下标越界
4.ClassCastException 类型转换
5.NumberFormatException 数字格式不正确
常见的编译时异常(需要处理)
1.SQLException
2.IOException
3 FileNotFoundException
4 ClassNotFoundException
5.EOFException
6 IllegalArgumentException
异常处理机制
try{
//代码 可能的异常
}catch(Exception e){ //可以多个catch ,子类异常在前
//捕获到的异常
//1.当异常发生时
//2.系统将异常封装成Exception对象e,传递给catch
//3.自己处理
//4.没发生异常,不执行catch
}finally{
//1.不管是否有异常发生,始终要执行
//2.通常释放资源
}
throws
JVM处理异常机制:
1.输出异常信息
2.退出程序
main方法默认有throws
不对异常处理,谁调用谁负责
子类抛出的异常要么和父类的一致 要么为父类抛出的异常的子类
自定义异常处理
定义类继承Exception或者RuntimeException
一般继承RuntimeException
throws 与throw
throws:是异常处理的一种方式,在方法处声明的,后面跟着的是异常的类型
throw:手动生成异常对象的关键字,在方法体中,后面跟着异常对象