当前位置: 首页 > 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.gsyq.cn/news/129217.html

相关文章:

  • Linly-Talker能否用于聋哑人手语翻译辅助?
  • Linly-Talker能否用于法庭庭审记录回放系统?
  • Linly-Talker在智能车载系统中的语音助手应用
  • Linly-Talker能否生成动物拟人化形象?创意内容新方向
  • MySQL索引核心:聚集索引与非聚集索引
  • Linly-Talker镜像支持ARM架构服务器部署吗?
  • Linly-Talker数字人头部转动角度范围有多大?
  • Gemma 3 270M:轻量级多模态文本生成模型
  • 职场高效摸鱼学习助手,核心功能,导入学习资料,文字,音频,自动拆分成五到十分钟片段,界面伪装成工作报表,点击隐藏学习瞬间到工作界面,记录学习,支持后台播放音频,跳过重复内容,避免上班被领导发现。
  • Linly-Talker如何平衡生成速度与画质清晰度?算法优化揭秘
  • 通用AI Agent:从被动应答到主动执行的智能系统全解
  • Linly-Talker能否接入高德地图提供出行导航?
  • diffusers-cd_bedroom256_l2:卧室图像极速生成
  • Wan2.2-T2V-A14B:MoE架构革新视频生成
  • 搞大模型必看的DeepSeek实战指南:这本图解书如何让复杂架构变通透?
  • Linly-Talker镜像包含预训练权重,开箱即用
  • python django flask智慧美食点餐餐桌就餐系统数据可视化大屏分析_91nl08c1--论文
  • Bamboo-mixer:电解质配方预测生成新方案
  • 6、开源操作系统与计算机系统概述
  • 大模型学习基础(六) 强化学习(Reinforcement Learning,RL)初步1.4
  • Linly-Talker能否实现跨平台同步(PC/手机/平板)?
  • 9、SQL Server Reporting Services与PowerShell远程处理实用指南
  • Qwen-Image-Edit-MeiTu:DiT驱动图像编辑新体验
  • Linly-Talker支持H.265编码压缩视频输出吗?
  • Linly-Talker能否生成儿童音色?亲子教育场景潜力巨大
  • 不拆到业务线和部门的战略,都是想当然
  • Linly-Talker语音抗噪能力强,嘈杂环境仍能准确识别
  • 50、Windows 移动计算网络连接全攻略
  • 2025年12月新沂透水砖行业趋势与厂家推荐 - 2025年品牌推荐榜
  • 8、操作系统系统调用与系统程序详解