Java try catch语句块中try()的括号中代码作用

 

应用场景:当我们使用带资源的try语句时,使用finally也许会造成一个异常被覆盖的问题,即try语句块中会抛出某个异常,执行finally语句块中跑出了同样的异常,这样的话就会导致原有的异常会丢失,转而抛出的finally语句中的异常。这时我们可以使用带资源的try语句来处理(前提是这个资源实现了AutoCloseable接口的类)

格式如下:括号中可以写多行语句,会自动关闭括号中的资源

try(Resource res = ...) {
    //TODO:res run
}
try (FileInputStream fileInputStream = new FileInputStream(file);
             InputStreamReader read = new InputStreamReader(fileInputStream, "GBK");
             BufferedReader bufferedReader = new BufferedReader(read);) {
            if (file.isFile() && file.exists()) { //判断文件是否存在
                lineTxt = null;
                while ((lineTxt = bufferedReader.readLine()) != null) {
                    reaportParam = JacksonUtils.jsonStrToObj(lineTxt, ReportParam.class);
                    return reaportParam;
                }
            } else {
                logger.info("找不到指定的上报结果文件");
            }
        } catch (Exception e) {
            logger.error("读取文件内容出错", e);
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值