当前位置: 首页 > news >正文

[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(非受检)的捕获:要么在发生处就近捕获,要么放任向上抛
http://www.jsqmd.com/news/117246/

相关文章:

  • Linly-Talker能否用于聋哑人手语翻译辅助?
  • Magistral-Small-1.2:多模态推理新升级
  • Ring-flash-2.0:6.1B激活MoE模型推理破百B性能
  • 6、Windows 操作系统架构与网络通信详解
  • 50、Windows Embedded Compact 7 中 USB 相机应用全解析
  • Linly-Talker能否用于法庭庭审记录回放系统?
  • Linly-Talker能否用于监狱服刑人员心理疏导?
  • 51、嵌入式设备开发:USB 摄像头、网络投影仪与 Phidgets 设备应用
  • 计算机毕业设计springboot家乡特色美食推荐系统的设计与实现 SpringBoot驱动的地域风味美食智能推荐平台构建 基于SpringBoot的乡土特色菜品发现与分享系统
  • Linly-Talker在智能车载系统中的语音助手应用
  • 7、Windows网络与RPC编程全解析
  • Linly-Talker能否生成动物拟人化形象?创意内容新方向
  • 52、Compact 7 RFID 阅读器与 FTDI 设备开发指南
  • Linly-Talker支持暗黑主题UI界面吗?
  • Linly-Talker在电力巡检机器人中的语音交互应用
  • 8、高效RPC客户端与服务器设计全解析
  • Linly-Talker支持并发请求处理吗?高负载性能测试
  • Linly-Talker表情过渡平滑度优于同类开源项目
  • MySQL索引核心:聚集索引与非聚集索引
  • Linly-Talker镜像支持Kubernetes集群部署
  • Linly-Talker镜像支持ARM架构服务器部署吗?
  • Linly-Talker如何确保用户上传肖像的安全性?
  • Linly-Talker数字人头部转动角度范围有多大?
  • 别再死磕纯数学!这本AI微积分书,让公式直接变成调参实力
  • Linly-Talker如何应对网络波动导致的卡顿问题?
  • Gemma 3 270M:轻量级多模态文本生成模型
  • 职场高效摸鱼学习助手,核心功能,导入学习资料,文字,音频,自动拆分成五到十分钟片段,界面伪装成工作报表,点击隐藏学习瞬间到工作界面,记录学习,支持后台播放音频,跳过重复内容,避免上班被领导发现。
  • Linly-Talker如何平衡生成速度与画质清晰度?算法优化揭秘
  • Linly-Talker在智慧农业大棚中的语音指导应用
  • Linly-Talker能否生成多个角色切换的剧情视频?