一.异常处理的类
Throwable(所有异常的父类)
两个子类 Error(系统崩溃 数据库崩溃)
Exception(异常)
--RuntimeException(运行时异常)
main函数中出现异常
可以自己处理,也可以交给上一级(谁调用的)处理,也就是JVM.
JVM默认的处理异常方式
1.打印错误所在位置
2.打印错误信息
3.停止你的程序
二.异常发生了如何解决
try.... catch .... finally
try 指的是要被测试的代码(有可能发生异常的代码)
catch 指的是要捕获的异常
catch(异常类 e){
}
多catch的处理异常
由上至下进行匹配 匹配上一个,剩下的catch就都不走了
catch捕获时使用的类由小到大书写
finally 指的是异常出现后要执行的代码,一定会执行,用于关闭数据库,关闭流.
final finally finalize区别
final(绝育) 修饰类 方法 变量
finally 异常处理中的关键字 可以关闭资源一定会被执行
finalize object类的方法 用来垃圾回收的 可以将内存中没有任何引用的垃圾空间回收
try—catch捕获异常流程:
1.某个方法 出现了异常
2.产生一个异常对象
3.这个异常对象要返回给方法的调用者
4.调用者接到这个异常 进行处理
方式一:抛给上级去处理
抛给JVM处理 调用JVM的默认处理机制 程序被停止
方式二:自己处理 try—catch处理
接到异常后 使用catch进行匹配
匹配成功后 执行catch中的语句
并且没有终止程序 程序继续运行
三.throw 与 throws
throw 抛出异常对象 写在方法中
throws 标识这个方法会抛出异常 写在方法的声明上
四.异常的分类
1.运行时异常(程序员犯得错误 代码写错了 比如越界)
2.编译时异常(除了运行时异常都是编译时异常)
特点:系统强制你去处理异常(不处理就报错)
五.继承中的异常
如果父类方法没有抛出异常,那么子类在重写父类该方法时,不能抛出异常,只能自己try--catch解决
如果父类方法抛出异常,那么子类在重写父类方法时也可以抛出异常