零基础学Java—finally代码块(四十七)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java—finally代码块(四十七)相关的知识,希望对你有一定的参考价值。

【零基础学Java】—finally代码块(四十七)

🧨🧨🧨🧨🧨🧨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处理。

以上是关于零基础学Java—finally代码块(四十七)的主要内容,如果未能解决你的问题,请参考以下文章

大数据必学Java基础(四十七):异常的讲解

零基础学Java—LinkedList集合(四十)

零基础学Java—Debug追踪(四十四)

零基础学Java—自定义异常(四十八)

零基础学Java—哈希值(四十一)

零基础学Java—throw关键字(四十六)