首页IT科技java try catch throw(Graceful Java之try…catch())

java try catch throw(Graceful Java之try…catch())

时间2025-06-20 20:50:39分类IT科技浏览4144
导读:[优美的Java代码之try...catch] 概述...

[优美的Java代码之try...catch]

概述

通常我们使用try...catch()捕获异常时            ,如果遇到类似IO流的处理                  ,要在finally部分关闭IO流            。这是JDK1.7之前的写法了;

在JDK7以后      ,可以使用优化后的try-with-resource语句            ,该语句确保了每个资源                  ,在语句结束时关闭                  。所谓的资源是指在程序完成后      ,必须关闭的流对象      。写在()里面的流对象对应的类都实现了自动关闭接口AutoCloseable            。

优化

语法:

try (创建流对象语句      ,如果多个,使用;隔开) { // 读写数据 } catch (IOException e) { e.printStackTrace(); }

优化前写法(JDK1.7之前)

Properties prop = new Properties(); File configFile = new File("/home/appconfig.properties"); FileInputStream fs = null; InputStreamReader reader = null; try { fs = new FileInputStream(configFile); reader = new InputStreamReader(fs, "utf-8"); prop.load(reader); } catch (Exception e) { Logger.error("load file error!!", e); } finally { try { if (reader != null) { reader.close(); } if (fs != null) { fs.close(); } } catch (IOException e) { e.printStackTrace(); } }

优化后写法(JDK1.7及以后)

try (FileInputStream fs = new FileInputStream(configFile); InputStreamReader reader = new InputStreamReader(fs, "utf-8")) { prop.load(reader); } catch (Exception e) { Logger.error("load file error!!", e); }

延伸阅读:嵌套的文件流如何正确的关闭

嵌套打开的流只需关闭最后打开的流                  ,先打开的会自动关闭;

打开的流可以多次关闭不会出错;

后面尝试打开流时可能会发生异常            ,此时要考虑关闭前面已经打开的流                  。

声明:本站所有文章      ,如无特殊说明或标注                  ,均为本站原创发布      。任何个人或组织            ,在未征得本站同意时,禁止复制            、盗用                  、采集      、发布本站内容到任何网站            、书籍等各类媒体平台      。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
帝国CMS7.5 避免漏洞(帝国CMS 7.0商城系统常见问题与技巧教程分享)