news 2026/5/12 18:11:55

[Java]PTA:jmu-Java-06异常-finally

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Java]PTA:jmu-Java-06异常-finally

代码中向系统申请资源,到最后都要将资源释放。

现有一Resource类代表资源类,包含方法:

  1. open(String str)打开资源,声明为抛出Exception(包含出错信息)。
  2. close()方法释放资源,声明为抛出RuntimeException(包含出错信息)

现在根据open(String str)中str的不同,打印不同的信息。str的内容分为4种情况:

  1. fail fail,代表open和close均会出现异常。打印open的出错信息与close的出错信息。
  2. fail success,代表open抛出异常,打印open出错信息。close正常执行,打印resource release success
  3. success fail ,代表open正常执行,打印resource open success。close抛出异常,打印close出错信息。
  4. success success,代表open正常执行,打印resource open success,close正常执行打印resource release success。

注1:你不用编写打印出错信息的代码。
注2:捕获异常后使用System.out.println(e)输出异常信息,e是所产生的异常。

裁判测试程序:

public static void main(String[] args) { Scanner sc = new Scanner(System.in); Resource resource = null; try{ resource = new Resource(); resource.open(sc.nextLine()); /*这里放置你的答案*/ sc.close(); }

以下输入样例代表输入success success。

输入样例

success success

输出样例

resource open success resource release success

代码如下

// 第一步:open成功,打印open成功的信息 System.out.println("resource open success"); } catch (Exception e) { // 捕获open()抛出的Exception // 第二步:open失败,打印open的异常信息 System.out.println(e); } finally { // 第三步:无论open是否成功,都尝试关闭资源 if (resource != null) { // 避免resource为null时调用close() try { resource.close(); // 执行close() // close成功,打印释放成功 System.out.println("resource release success"); } catch (RuntimeException e) { // 捕获close()抛出的RuntimeException // close失败,打印close的异常信息 System.out.println(e); } } }

注意:

  1. 资源释放必须用 finally(无论是否抛异常,close 必执行);
  2. 不同作用域的 catch 块彼此独立,子类异常不会被父类 catch 覆盖;
  3. RuntimeException(非受检)的捕获:要么在发生处就近捕获,要么放任向上抛
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 20:19:11

Linly-Talker如何处理长时间对话的记忆衰减问题?

Linly-Talker如何处理长时间对话的记忆衰减问题? 在虚拟主播流畅推荐商品、AI客服耐心解答复杂问题的表象之下,隐藏着一个长期困扰开发者的核心难题:数字人真的“记得”你之前说过什么吗? 当用户与智能体连续对话超过十几轮后&…

作者头像 李华
网站建设 2026/5/12 16:14:15

Linly-Talker如何应对网络波动导致的卡顿问题?

Linly-Talker如何应对网络波动导致的卡顿问题? 在虚拟主播直播正酣、智能客服全天候待命的今天,一个“卡顿”的数字人可能意味着用户的流失、服务的中断,甚至品牌形象的受损。尽管AI技术已能让数字人“能说会动”,但真正考验其落地…

作者头像 李华
网站建设 2026/5/12 16:14:38

Linly-Talker能否接入高德地图提供出行导航?

Linly-Talker能否接入高德地图提供出行导航? 在智能车载系统日益普及的今天,用户不再满足于“点击起点终点、听语音提示”的传统导航模式。他们更希望有一个能听懂复杂指令、会看路况、还会“皱眉提醒前方拥堵”的虚拟助手——比如一个搭载了大模型的数字…

作者头像 李华
网站建设 2026/5/9 1:42:13

MySQL索引核心:聚集索引与非聚集索引

前言 在学习MySQL过程中,阅读到这样一段话:在 MySQL 中,B 树索引按照存储方式的不同分为聚集索引和非聚集索引。我就在想为什么要分为这两种,下面我就详细介绍这两者的联系、优缺点。 一、聚集索引和非聚集索引的本质 聚集索引…

作者头像 李华
网站建设 2026/5/1 10:53:15

Linly-Talker支持边缘计算部署吗?离线运行可行性分析

Linly-Talker支持边缘计算部署吗?离线运行可行性分析 在智能终端日益普及的今天,人们对数字人系统的期待早已不再局限于“能说话”,而是要求其具备实时响应、隐私安全和稳定可靠的综合能力。尤其是在展厅导览、车载助手、金融柜员等实际场景中…

作者头像 李华
网站建设 2026/5/12 13:41:05

Linly-Talker镜像经过大规模中文语料训练优化

Linly-Talker:中文数字人对话系统的全栈实践 在虚拟主播深夜直播带货、银行大厅里数字柜员耐心解答业务、在线课堂中AI教师娓娓讲解知识点的今天,我们正经历一场由多模态人工智能驱动的人机交互革命。而这场变革的核心,是像 Linly-Talker 这样…

作者头像 李华