异常处理
1.为什么需要学习异常处理
1)观察程序的错误;
2)能够让错误指示程序修改;
3)JVM处理异常的方式不能够满足我们的需求,需要程序猿自己来处理异常。
4)为什么需要处理异常? 在程序出现问题后,还能够让程序继续执行
2.什么是异常
异常的概述: 异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。
异常本质就是Java当中对可能出现的问题进行描述的一种对象体现。
3.异常的分类
1)异常(Exception)
- 编译时异常: 凡是Exception或者是Exception的子类都称为编译时异常,这种是可以解决的,一般会造成编译不通过;
- 运行时异常: 凡是RuntimeException或者是RuntimeException的子类都称为运行时异常,这种也是可以解决的,一般都是代码不够严谨或者逻辑错误
2)错误 (Error)
- 我们无法解决,暂时不是我们所关心的。
4.JVM处理异常的方式:
1)打印错误信息
- a.异常的类名
- b.异常信息
- c.异常的位置
- d.错误的行号
2)将程序停止
5.处理异常的方式:
1)try…catch…finally
2)throws
3)异常处理的格式:
try…catch…finally
try {
可能出现问题的代码;
} catch(异常类名 异常对象) {
异常处理的代码
} finally {
释放未关闭的资源
}
4)异常处理的执行流程
a.程序执行到错误代码的地方,系统会抛出一个异常对象
ArithmeticException ae = new ArithmeticException("/by zero");
throw ae;
b.程序转入catch块进行逐个匹配
c.匹配成功,程序执行 catch代码
d.匹配失败,程序还给JVM处理
注意事项
- 1.try块代码尽量越少越好
- 2.一旦try块代码中出现异常,无论try块后面有多少行代码,都不会被执行
- 3.catch块中异常参数匹配同样满足多态 Exception e = new ArithmeticException("/by zero");
- 4.try块只能够有一个,catch可以有多个,try可以和finally组合,try可以和catch组合,try可以和catch和finally组合
- 5.一般会把Exception作为catch的参数类型放在异常处理格式的最后
- 6.Execption作为父类异常参数只能够出现在异常的最后面,先子类后父类
异常处理的标准格式:
- 1.能够显示声明的异常尽量显示声明,提高程序的可读性
- 2.在最后都必须加上 Exception 作为父类异常,防止程序异常停止,提高程序的安全性