java try catch throw(Graceful Java之try…catch())
导读:[优美的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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!