try-catch-finally更好的选择-->try(){}

142 阅读1分钟

try(){}的使用

含义

Java7 增强try语句的功能,在try后面的括号中()初始化的一个或者多个资源,会在程序结束的时候自动关闭这些资源

原理

  • 实现Closeable接口(内部只有一个close的抽象方法)
  • try块退出的时候会自动调用res.close()方法

优点

  • 自动关闭资源
  • 不需要自己考虑资源的关闭问题
  • 代码整洁度上升

注意点

  • 目标资源类要实现Closeable接口

例子

使用案例1

try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
    //......
}

使用案例2

使用 try-catch-finally

        InputStream is = null;
        OutputStream os = null;
        try{
            //做一些操作
        }catch (IOException e){
            //...
        }finally {
            try {
                if (is!=null){
                    is.close();
                }
                if (os!=null){
                    os.close();
                }
            }catch (IOException e2){
                //...
            }
        }

使用try(){}

try(
    InputStream is = new FileInputStream("...");
    OutputStream os= new FileOutputStream("...")
){
    //...
}catch (IOException e) {
    throw new RuntimeException(e);
}

场景

编程老师在课上使用了此方法,一开始觉得眼熟,并不知道try(){}会自动关闭资源的功能,只觉得是try-catch-finally但好像有点不一样,查了之后才知道此方法真正的内部实现。

问题反馈

如果您对我的文章有何高见或者改进的建议,可以通过以下联系方式找到我,QAQ

QQ:2404000810