一、定义
1、异常:程序出现的问题。
2、处理方式
(1)
(2)
try中的某一行代码如果出现异常,会与下面的catch进行匹配,匹配成功就执行catch里面对应的,就不再执行try出问题的语句的后面的语句了。如果try里面的语句异常但没找到catch匹配,JVM就报错了。如果try里面的语句没有异常,就继续执行try里面的第二条指令。
整理:
二、异常中的常见方法
注意:printStackTrace()是用红色字体打印异常的详细信息,但是会继续执行不会因此中断。
三、抛出处理
运行时的异常不用throws声明,可以省略,例如上图的两个异常的父类都有RunTimeException.
(1)改造javabean,如果什么情况就排除指定的异常
(2)try。。catch 如果出现某个异常,就执行什么语句。但不会因此异常而中断,若想重新调用可以while(true)
四、finally
除非有System.exit(0)或者虚拟机退出了不会执行finally里面的,否则一定会执行finally里面的
但是!直接像上面这样移动,fos会报错,因为fos是在try里面定义的。
只能在try外面定义fos并赋值null,但不创建!
万一fis创建时没找到那个文件,那么fis还是null,到了finally里面null.close()肯定会报错,所以要在finally中加上非空判断:如果不为空,再try catch close()的可能的异常