news 2026/6/15 16:49:36

[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/6/15 3:28:43

Linly-Talker语音断句优化:长句子自然停顿处理策略

Linly-Talker语音断句优化:长句子自然停顿处理策略 在虚拟主播直播带货、AI教师在线授课、数字客服全天候服务的今天,用户早已不再满足于“能说话”的机器人。他们期待的是一个会思考、懂节奏、能倾听、可互动的类人存在。然而现实是,许多数字…

作者头像 李华
网站建设 2026/6/15 11:28:27

20、NetBIOS编程在Windows NT环境中的深入解析与应用

NetBIOS编程在Windows NT环境中的深入解析与应用 NetBIOS(Network Basic Input/Output System)是一种用于网络通信的API,在Windows NT环境中有着广泛的应用。它为不同的应用程序提供了一个统一的接口,使得它们能够在网络上进行通信。下面我们将详细探讨NetBIOS在Windows N…

作者头像 李华
网站建设 2026/6/15 11:29:42

Linly-Talker支持语音增益自动调节吗?

Linly-Talker 支持语音增益自动调节吗? 在构建实时数字人系统的今天,一个常被忽视却至关重要的问题浮出水面:当用户轻声细语、突然靠近麦克风,或身处嘈杂环境时,系统能否“听清”并准确响应?这背后不仅依赖…

作者头像 李华
网站建设 2026/6/15 11:56:06

Linly-Talker支持并发请求处理吗?高负载性能测试

Linly-Talker 支持并发请求处理吗?高负载性能测试深度解析 在虚拟主播、AI客服和数字员工日益普及的今天,一个数字人系统是否“扛得住”多人同时访问,已经成为决定其能否从技术演示走向真实落地的关键。用户不会容忍每次对话都要排队十几秒&a…

作者头像 李华
网站建设 2026/6/15 15:00:03

Linly-Talker能否用于聋哑人手语翻译辅助?

Linly-Talker能否用于聋哑人手语翻译辅助? 在远程医疗问诊中,一位听障患者试图通过视频通话向医生描述症状,却因沟通不畅而反复比划、书写,效率低下;在政务服务大厅,聋哑人士面对窗口工作人员的口头指引茫…

作者头像 李华
网站建设 2026/6/15 11:20:35

Linly-Talker能否生成动漫风格卡通人物?

Linly-Talker能否生成动漫风格卡通人物? 在虚拟主播、二次元内容和游戏NPC日益火爆的今天,一个关键问题浮出水面:我们能否用一张动漫立绘,就让角色“活”起来,开口说话、表情自然、唇形同步?这不仅是ACG爱好…

作者头像 李华