🧨🧨🧨🧨🧨🧨finally代码块
finally
:有一些特定的代码块无论是否异常是否发生,都要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的。
什么时候的代码必须最终执行?
当我们在try语句块中打开了一些物理资源(磁盘文件/网络连接/数据库连接等等)我们都得在使用完之后,最终关闭打开的资源。
finally语法:
注意:
finally
不能单独使用,必须和try
一起使用finally
一般用于资源释放(资源回收),无论是程序是否出现异常,最终都要资源释放。
public class demoFinally { public static void main(String[] args) { try{//可能会产生异常代码 readFile("c:\\a.txt"); } catch(IOException e){ e.printStackTrace(); }finally { System.out.println("资源释放"); } } public static void readFile(String fileName) throws IOException{ if(!fileName.endsWith(".txt")){ System.out.println("文件的后缀名不对"); } System.out.println("路径没有问题,读取文件"); } }
二、异常注意事项
- 多个异常分别处理
- 多个异常一次捕获,多次处理
- 多个异常一次捕获,一次处理
一般我们是使用一次捕获多次处理的方式,格式如下:
注意:这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。