1.异常的概述
异常:应用程序在运行的过程中发生的使程序意外终止的情况。
2.异常的分类
异常的顶级父类:Throwable
子类:Error | ----Exception
|--- 运行时异常(unchecked异常)-----》RuntimeException
|-- 编译期异常(checked异常)====》除了RuntimeException以及其子类,其他的异常我们都认为是编译期异常
可以处理的异常:Exception
无法通过程序处理的异常:Error 例如:内存溢出、JVM奔溃、蓝屏、电脑冒烟
3.处理异常
Try{
}catch(){}
Try{
}catch(){
}catch(){
}...
{
}catchN(){
}
Try{
}finally{
//只有在finally之前遇到了System.exit(1)代码,那么finally代码不会被执行
//无论程序是否正常执行,最终都会被执行的代码
//如果程序发生异常,先执行finally,再执行catch块中的语句
//通常情况,finally只会编写资源释放的代码:JDBC释放数据库对象/IO使用完毕也要释放
}
Try{
}catch(){
}finally{
//无论程序是否正常执行,最终都会被执行的代码
}
注意:多重Catch中,如果匹配上最终只会执行一个catch匹配块,如果所有的catch都匹配不上,程序意外终止;
多重catch里面,从上往下,应该是从子类到父类,顺序不能变
4.throws的应用
Throws:只能定义在方法名称的后面,throws 后+异常类
Public void fun() throws 异常类
Public static void divide(int num1,int num2) throws ArithmeticException{
}