异常
Throwable
|
Error错误 Exception异常
| 可以处理的
1.运行时异常;
运行期 ,出现的问题。可处理 可 不处理。
处理:后边的程序不会中断。
RuntimeException类和 它的子类。
2.非运行时异常(受检异常)
编译期,提示的异常问题。必须处理。
Exception类 和 部分子类。
----------------------------------------------
异常处理方式:
1.try-catch
try{
会出现异常的代码;
}catch(异常类 对象){
处理异常;
}
情况:
1.无异常出现,try执行,catch不执行
2.异常类型匹配,try执行,catch执行
3.异常类型不匹配,try执行,catch不执行。
-------------------------------------------
2.多重catch块
try{
会出现异常的代码;
}catch(异常类 对象){
处理异常;
}catch(异常类 对象){
}
优点:对不同类型的异常进行不同的处理。
顺序:
1.由子类 到 父类;
2.由 普通 到 特殊。
---------------------------------------------
3.try-catch-finally
try{
}catch(){
}finally{
一定会执行的代码,必须执行的代码;
通常 资源释放
}
注:唯一一种 不执行 finally块的情况是,System.exit(0);退出 JVM
-----------------------------------------
final,finally,finalize 区别:
final:修饰符 终态
类 不能被继承
方法 不能被重写
变量 不能被修改,常量
finally:
异常处理,代码一定会执行的块。
finalize:
方法,Object类的方法。在释放对象之前,垃圾回收此对象之前调用此方法用于资源释放。
-------------------------------------------
4.throws声明异常
抛给了 调用者
调用者的解决方式:
1)throws
2)try - cath
---------------------------------------------
5.throw
自己抛异常,抛的 是 受检异常 ,必须 throws;运行时异常,不用 throws
----------------------------------------------
6.自定义异常类
继承 一个 系统异常类。
-------------------------------------
程序调试
F5 :单步跳入(可以调试方法)
F6 :单步跳过
步骤:
1.猜出错的代码的位置;
2.加断点。
3.单步运行;F5,F6
4.观察 变量值的变化;
5.发现问题;
6.解决问题。
网友评论