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

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

时间2025-09-19 16:13:46分类IT科技浏览5586
导读:[优美的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
病毒防御系统的城墙(病毒变种太多?系统底层防御统统拦截)