异常概述与异常体系结构
常见异常
面试题:常见的异常
异常处理机制1:try-catch-finally
过程1:在执行中出现异常则生成一个异常类对象并抛出。并且后面代码不再执行。过程2:抓,异常处理方式:try-catc-finally,throws。
try{
//可能出现异常的代码
}catch(异常类型1 变量名1){
//处理异常的方法1
}catch(异常类型2 变量名2){
//处理异常的方法2
}catch(异常类型3 变量名3){
//处理异常的方法3
}
.....
finally{
//一定会执行的代码
}
finally是可选的,finally中声明的是一定会被执行的代码即使try和catch有return。像数据库连接、输入输出流、网络编程socket等资源,JVM是不能自动回收的,我们需要自己手动释放所以就需要声明在finally中。
运行时异常不用try-catch,编译时异常需要
异常处理机制2:throws
ctrl+shift+O一键注释。throws+异常
public void method1() throws FileNotFoundException,IOException{
}
方法重写的规则之1:子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常
手动抛出异常:throw
public void method1(int id) {
if(id>0){
this.id=id;
}else{
//手动抛出异常
throw new RuntimeException();
}
}
用户自定义异常类
1.定义的类继承现有的异常类:RuntimeException, Exception
2.提供全局常量:serialVersionUID
3.提供重载的构造器
public class MyException extends RuntimeException{
}