异常概要图
异常
Java处理异常是中断异常,不正常的,影响jvm虚拟机运行
Throwable 所有异常和错误的超类
Error必须修改源代码
exception 要么抛出,要么捕获
try 可能出现异常的语句
catch 处理异常的逻辑
异常产生过程解析:
异常如何产生。怎么处理异常
Jvm监测到异常会做两件事
- 根据监测原因,会川建一个监测对象,这个对象包含异常产生的原因内容位置
- 在方法没有处理逻辑,jvm就会把异常对象抛出给使用者main方法处理
- Main方法会检测有没有处理异常的逻辑,没有的话机会抛出异常以红色字体的方式输出到控制台上。并且中断程序
Throw关键字:
可以使用throw在制定方法中抛出指定的异常
1.row new xxxException(“异常产生的原因“);
2.row对象必须是exception或者子类对象
3.throw 抛出的异常必须处理,妖魔throws 妖魔trycatch
Throws:
作:当方法内部抛出异常时必须进处理
使用方法:
修饰符 返回值类型 方法名(参数列表)trows xxxxexception{
}
注意事项:
- 必须放在方法声明处
- 后面的异常必须是exception或者其子类
- 方法内部如果声明异常,那么后面也必须声明多个异常
若果异常有子父类关系,直接声明父类即可
调用一个声明抛出异常的方法,我们必须处理声明的异常
要么使用throws交给jvm处理,要么使用trycatch处理
缺陷:调用异常之后,后续代码打印不到,jvm中断处理
Try catch 捕获异常
Try
可能产生异常的方法
Catch(定义一个异常的变量 用来接收抛出的异常对象)
如何处理异常对象
:
一般在工作中。会把异常的信息记录到日志中。
注意事项;\
- 如果try中存在多个异常,就可以使用多个catch来接受
- 2若果有异常,就会执行catch里的异常处理逻辑,继续执行后续代码
- 若果无异常,执行完try继续执行之后的代码
- Finally不能单独使用,不惜与catch使用
- 一般用于资源释放和资源回收,无论程序是否出现异常都要进行资源释放。
异常的注意事项:
- 多个异常分别处理
- 多个异常一次捕获分别处理:
注意事项:catch定义的异常变量如果有子父类关系,子类异常变量必须写上边
抛出的异常从上往下处理 - 一次捕获一次处理
- 若果finally类有return语句,则会一定执行finally的语句
子父类异常注意事项:
父类异常啥样,子类异常就啥样 - 重写父类方法抛出异常要一样,
- 跑出父类异常的子类
- 不抛出父类异常
- 父类方法没有异常,子类不能抛出异常,只能trycatch捕获异常
自定义异常类
:一般以exception结尾说明是个异常类
继承exception 异常类为编译器异常
如果抛出异常要不throws,或者 trycatch
如果是运行起异常,无需处理,jvm中断处理