news 2026/4/16 17:50:27

[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/4/16 13:33:28

12、高级 DHCP 和 DNS 配置:高可用性解决方案

高级 DHCP 和 DNS 配置:高可用性解决方案 在网络环境中,DHCP(动态主机配置协议)是一项关键服务,它为客户端设备自动分配 IP 地址等网络配置信息。若 DHCP 服务器无法响应客户端请求,客户端将无法在网络上进行通信。因此,确保 DHCP 服务的高可用性至关重要。本文将介绍 …

作者头像 李华
网站建设 2026/4/16 16:50:12

Linly-Talker如何优化夜间模式下的画面显示?

Linly-Talker 如何优化夜间模式下的画面显示? 在深夜的书桌前,你正通过虚拟助手复习课程。屏幕中的数字人老师语气温和、口型精准,但突然间,那张本该亲切的脸却隐没在昏暗中,背景刺眼的白框让你不得不眯起眼睛——这样…

作者头像 李华
网站建设 2026/4/15 22:35:02

18、基于Mailslot的Win32服务Echo Server实现

基于Mailslot的Win32服务Echo Server实现 1. 引言 在Windows编程中,Mailslot是一种简单而有效的进程间通信(IPC)机制。本文将深入探讨如何在Win32服务中使用Mailslot实现一个Echo Server,该服务器是一个多线程程序,每个线程负责为一个客户端提供服务。 2. Echo Server的…

作者头像 李华
网站建设 2026/4/16 15:13:47

Gemma 3 270M量化版:小模型大能力

Gemma 3 270M量化版:小模型大能力 【免费下载链接】gemma-3-270m-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/gemma-3-270m-bnb-4bit 导语:Google最新发布的Gemma 3系列中的270M参数模型经Unsloth优化后推出4位量化版本&…

作者头像 李华
网站建设 2026/4/16 13:03:05

Linly-Talker数字人头部转动角度范围有多大?

Linly-Talker数字人头部转动角度范围有多大? 在虚拟主播、智能客服和在线教育日益普及的今天,一个“眼神灵动、举止自然”的数字人早已不再是科幻电影中的幻想。然而,真正让用户感到“像在与真人对话”的关键,并不只在于高清的面容…

作者头像 李华
网站建设 2026/4/16 14:27:31

规模化私域增长?这4个关键数字决定成败

无数据,不私域;无体系,不长久。 我操盘2000万私域用户这些年,发现太多老板踩了同一个坑:把私域当成“人海战术”。结果呢?团队扩张到100人,GMV却纹丝不动(据服务的120企业统计&#…

作者头像 李华