try-catch-finally和try-with-resources

这里推荐一个着重说明Java运行时异常和检查型异常的博客:

Java异常处理机制相关疑问-CSDN博客


try-catch-finally

介绍

是Java语言的基础异常处理机制。自从Java的初始版本开始,它就一直是处理运行时异常和错误的标准方式。


代码块说明

  • try块:包含可能会抛出异常的代码
  • catch块:用于捕获并处理这些异常
  • finally块:(如果存在)则无论是否发生异常都会执行

try-catch必须同时存在,是异常捕获和处理的基本结构。finally块是一个可选的,finally块中的代码总是会被执行,通常用于执行清理操作,如关闭文件或数据库连接。

示例:

BufferedReader reader = null;  
try {  
    // 可能会抛出异常的代码
    reader = new BufferedReader(new FileReader("file.txt"));  
    // 使用reader读取文件的代码  
} catch (IOException e) {  
    // 处理IOException  
    e.printStackTrace();  
} finally {  
    // 无论是否发生异常,这里的代码都会被执行
    if (reader != null) {  
        try {  
            reader.close();  
        } catch (IOException e) {  
            // 处理close时可能发生的异常  
            e.printStackTrace();  
        }  
    }  
}


try-with-resources

介绍

也称(也称为ARM块,即Automatic Resource Management),是为了简化资源管理(旨在提供一种优雅的方式来管理资源,确保在try语句块执行完毕后,自动关闭实现了AutoCloseableCloseable接口的资源。try-with-resources是在Java 7(也称为Java SE 7或1.7版)中引入的。

代码块说明

try-with-resources语句允许你在try语句的括号中声明一个或多个资源,当try语句块执行完毕时(无论是正常结束还是由于异常而退出),这些资源都会自动关闭。这使得开发者无需在finally块中显式调用资源的close方法,这使得代码更简洁,也减少了出错的可能性。

示例:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {  
    // 使用reader读取文件的代码  
    String line;  
    while ((line = reader.readLine()) != null) {  
        System.out.println(line);  
    }  
    // 当try块结束时,reader将自动关闭  
} catch (IOException e) {  
    // 处理IOException  
    e.printStackTrace();  
}

总结

Java中的try-with-resources语句可以被视为对try-catch-finally语句在资源管理方面的补充和优化。try-with-resources语句是在Java 7中引入的,旨在简化资源(如文件句柄、网络连接、数据库连接等)的管理,并确保它们在使用后能够被正确地关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值