替代try-catch-finally的异常处理方式
以前的try-catch-finally方式
try {
// todo...
} catch (Exception e) {
// 异常捕获,日志记录
// log.error(e.getMessage());
}finally{
// todo...
// 一般是关闭资源/连接/io/stream
}
替代方式的实现:
一.实现Autocloseable接口
package cn.xxx.xxxx.utils;
import java.io.Closeable;
/**
* @author hongliang.mei
* @since 2020/4/2 15:22
*/
public class MyResource implements AutoCloseable {
/**
* 自定义一个简单的方法
*/
public void open() throws Exception {
System.out.println("MyResource class methods open() has been use!");
}
/**
* 巴拉巴拉小魔仙 @Override
*/
@Override
public void close() throws Exception {
System.out.println("MyResource class methods close() has been use!");
}
}
二.使用
import cn.cncommdata.template.utils.MyResource;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
/**
* @author hongliang.mei
* @since 2020/4/2 13:45
*/
@SpringBootTest
public class FileTest {
@Test
public void test() throws Exception {
// try()括号里面new一些需要关闭资源的累,且必须实现AutoCloseable接口
try (MyResource myResource = new MyResource()) {
myResource.open();
} catch (IOException e) {
e.printStackTrace();
}
/**
// 若无异常打印
try (MyResource myResource = new MyResource()) {
myResource.open();
}
*/
}
}
三.控制台打印结果