try(){}用法try-with-resources、try-catch-finally

news2024/9/22 21:19:17

在这里插入图片描述

属于Java7的新特性。
经常会用try-catch来捕获有可能抛出异常的代码。如果其中还涉及到资源的使用的话,最后在finally块中显示的释放掉有可能被占用的资源。
但是如果资源类已经实现了AutoCloseable这个接口的话,可以在try()括号中可以写操作资源的语句(IO操作),会在程序块结束时**自动释放掉占用的资源**,不用再在finally块中手动释放了。

例子:
没使用该特性

如果要释放的资源多得话,判断加catch占得篇幅大,不美观也不精简
在这里插入图片描述用了这个特性后代码可以精简些
在这里插入图片描述
try-catch-finally
在这里插入图片描述

try-with-resources
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述----------------------------------------------------分割线---------------------------------------------------------------------
取自:https://jenkov.com/tutorials/java-exception-handling/try-with-resources.html
Using Multiple Resources
You can use multiple resources inside a Java try-with-resources block and have them all automatically closed. Here is an example of using multiple resources inside a try-with-resources block:
在这里插入图片描述
This example creates two resources inside the parentheses after the try keyword. An FileInputStream and a BufferedInputStream. Both of these resources will be closed automatically when execution leaves the try block.
Closing Order
The resources declared in a Java try-with-resources construct will be closed in reverse order of the order in which they are created / listed inside the parentheses. In the example in the previous section, first the will be closed, then the FileInputStream.
Custom AutoClosable Implementations
The Java try-with-resources construct does not just work with Java’s built-in classes. You can also implement the java.lang.AutoCloseable interface in your own classes, and use them with the try-with-resources construct.

The AutoClosable interface only has a single method called close(). Here is how the interface looks:
在这里插入图片描述
Any class that implements this interface can be used with the Java try-with-resources construct. Here is a simple example implementation:
在这里插入图片描述
The doIt() method is not part of the AutoClosable interface. It is there because we want to be able to do something more than just closing the object.

Here is an example of how the MyAutoClosable is used with the try-with-resources construct:
在这里插入图片描述
Here is the output printed to System.out when the method myAutoClosable() is called:
在这里插入图片描述
As you can see, try-with-resources is a quite powerful way of making sure that resources used inside a try-catch block are closed correctly, no matter if these resources are your own creation, or Java’s built-in components.

举例
在这里插入图片描述

参考:
Java必须懂的try-with-resources

java知识大全

jenkov.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cocos 项目实践总结

文章目录 组件文档的理解:开发过程顺序问题:1、获取锚点坐标2、事件监听3、批量生成选词按钮4、Button可以自定义边界、边界颜色、及弧度一些问题记录1、button点击过后重新恢复页面渲染,button的状态偶发还是点击态而非正常态2、偶发事件绑定…

【自动驾驶基础入门】SLAM应该怎么学习?

1、SLAM是什么? SLAM是Simultaneous Localization and Mapping的缩写,即同时定位与地图构建。也称为自主机器人导航或者无人车等领域的基本任务之一。 简单来说,SLAM是指在未知环境中,通过移动机器人并利用其搭载的各种传感器数据…

Yolov5训练日记~如何用Yolov5训练识别自己想要的模型~

目录 一.数据集准备 二.标签设置 三.模型训练 四.模型测试 最近尝试了Yolov5训练识别人体,用的是自己尝试做的训练集。见识到Yolo的强大后,决定分享给大家。 一.数据集准备 数据集是从百度图片上下载的,我当然不可能一个一个下载&#xff…

还没用过这12款建筑设计软件?你OUT了

每个建筑设计软件都针对不同的需求。选择最好的一个取决于许多因素,例如成本、与其他程序的兼容性以及您愿意花在绘图过程上的时间。它还取决于您在设计过程中所处的位置——我们可能都开始在纸上画草图,然后转向建筑软件。我们甚至需要图形设计软件来说…

Haoop集群的搭建(小白教学)

搭建hadoop集群我们必须拥有自己的虚拟机,下列我会给大家奉上超详细的集群搭建以及我在搭建的时候碰到的问题以及对应解决办法,正所谓自己走过的错路是曲折的,也是防止大家做弯路,不仅浪费时间还心态爆炸,下面带走入ha…

蜘蛛池搭建需要多少域名?全面解析!

蜘蛛池是指为搜索引擎爬虫提供优质、可靠的页面,从而提高网站的收录和排名。在蜘蛛池搭建过程中,域名数量是一个非常重要的问题。那么,蜘蛛池搭建需要多少域名呢?本文将对这个问题进行全面解析。 首先,我们需要了解什么…

SQL教程

1、基础 演示数据库,下面是选自 “Websites” 表的数据: SELECT 语句用于从数据库中选取数据。 SELECT name,country FROM Websites;SELECT DISTINCT 语句用于返回唯一不同的值。 SELECT DISTINCT country FROM Websites;WHERE 子句用于提取那些满足…

二十三种设计模式第五篇--原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建…

Linux网络——Shell编程之循环

Linux网络——Shell编程之循环 一、循环1.循环与遍历2.循环的优势 二、for 循环语句1.for 语句的结构2.for语句应用示例 三、while 循环语句1.while 语句的结构2.while语句应用示例 四、until 循环五、跳出循环1.break2.continue3.exit 六、死循环 一、循环 定义:循…

2023年适合营销公司使用的十大「社交媒体管理」工具

在遍地都是数字营销公司的时代,对品牌来说,拥有强大的社交媒体影响力以保持竞争力从未如此重要。 而对于管理一个或多个品牌的数字营销公司来说,从内容创作到执行报告,使用正确的工具可以帮助你做到这一点。从规划、管理和跟踪社…

idb使用教程(一)

概述 iOS开发桥(idb)是一个多功能的工具,用于自动化iOS模拟器和设备。它在一个一致的、对人友好的界面中暴露了很多分布在苹果工具中的功能。 安装 idb由两个部分组成,每个部分都需要单独安装。 idb伴侣 每个目标&#xff08…

《花雕学AI》ChatMind:与AI对话,轻松梳理思路并创建思维导图

引言: 思维导图是一种有效的思维工具,可以帮助用户整理和表达自己的思路,提高学习和工作的效率和质量。然而,传统的思维导图工具往往需要用户花费大量的时间和精力,学习和操作复杂的界面和功能,而且很难根据…

医院智能导诊系统,医院导航解决方案

随着现代医院规模不断扩大,功能区域越来越细化,面对复杂的楼宇结构,集中的就诊人流,患者在就诊中经常会面临找不到目的地的困境,就诊体验变差。针对这个问题,一些面积和规模都比较大的医院,已经…

html实现经典打方块小游戏

文章目录 1.设计来源1.1 主界面1.2 游戏界面1.3 游戏结束界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/130581985 html实现经典打方块小游戏源码 html实现经典打方块…

自主可控不走捷径,中国长城做难且正确的事

2020-2022年是中国信创产业的重要推广期,在国家战略的支持下,自主可控领域诸多相关企业均获得绝佳发展良机。 但信创产业“完成替代”不是终点,“实现领先”方是目标。如今势已启、路尚远,前景广阔的市场并不意味着自主可控相关企…

运营商三要素验证原理,这篇文章就够了!

引言 运营商三要素验证 API 是一种基于手机号码、身份证号码和姓名等三种信息的验证服务,主要用于验证用户身份信息的真实性和一致性,以及查询手机号码所属的运营商信息。 运营商三要素 API 的验证原理 1. 身份验证的原理 身份信息验证是运营商三要素…

入门级的家用洗地机怎么样?入门级洗地机推荐

洗地机的功能有很多,比如除菌、洗地机清洁地面的确是一把好手。但是!清洁完之后还要手动清洗洗地机,是一件麻烦事啊!现在市面上大部分洗地机都有自清洁这个功能,但是很多洗地机的自清洁并不算真正的自清洁,…

从月薪3000到月薪20000,自动化测试应该这样学...

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要…

倒转时空,颠覆传统:探究逆置链表的三种思路

本篇博客会讲解力扣“206. 反转链表”的解题思路,这是题目链接。 老规矩,先来审题: 示例如下: 提示和进阶: 本题的思路非常多,我讲解一下常见的思路。 思路1 最容易想到的方法,是直接使…

macOS本地python环境/vscode/导入python包/设置python解释器

查看macbook本地是否有python环境 输入python或者python3,退出python环境使用exit(),别忘了括号 没有的话去官网安装https://www.python.org/ 2. 安装vscode 官网https://code.visualstudio.com/ 3. 安装插件 点击左边的“插件”按钮,安装…