本篇文章为你整理了Graceful Java之try...catch()()的详细内容,包含有 Graceful Java之try...catch(),希望能帮助你了解 Graceful Java之try...catch()。
目录概述优化优化前写法(JDK1.7之前)优化后写法(JDK1.7及以后)延伸阅读:嵌套的文件流如何正确的关闭
通常我们使用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);
延伸阅读:嵌套的文件流如何正确的关闭
以上就是Graceful Java之try...catch()()的详细内容,想要了解更多 Graceful Java之try...catch()的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。