Loading

Java中try()...catch()用法

  在stackoverflow偶尔看到的一个关于try()...catch()的用法,通常我们使用try...catch()捕获异常的,如果遇到类似IO流的处理,要在finally部分关闭IO流,当然这个是JDK1.7之前的写法了;在JDK7优化后的try-with-resource语句,该语句确保了每个资源,在语句结束时关闭。所谓的资源是指在程序完成后,必须关闭的流对象;写在括号里面的流对象对应的类都实现了自动关闭接口AutoCloseable

  格式:

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

 

  演示代码,下面的test目录是不存在的,运行会抛出异常;

  • JDK1.7之前

FileWriter fw =  null ;

try {
    fw =  new FileWriter( "test\\test.txt" );
    fw.write( "test" );
}  catch (Exception ex) {
    ex.printStackTrace();
}  finally {
    if (fw !=  null ) {
        try {
            fw.close();
        }  catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  

  • JDK1.7之后

try (FileWriter fw =  new FileWriter( "test.txt" )) {
    fw.write( "test" );
}  catch (Exception ex) {
    ex.printStackTrace();
}

 

posted @ 2019-02-12 11:49  街头卖艺的肖邦  阅读(40744)  评论(1编辑  收藏  举报