1. 简化 finally 里头捕捉异常模块
– 相关联的学习文章参考
啰嗦的finally 里头try catch
public static void main(String[] args) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(new File("test"));
System.out.println(inputStream.read());
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
}
}
相关联的替换
public static void main(String[] args) {
try (FileInputStream inputStream = new FileInputStream(new File("test"))) {
System.out.println(inputStream.read());
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
2 . 多层次addSuppressed()方法使用
– 相关博文介绍
public class ReadFile2 {
public static void main(String[] args) {
ReadFile rf = new ReadFile();
try {
rf.read("F:/manifest_provider_loophole.txt");
} catch (BaseException2 e) {
e.printStackTrace();
}
}
public void read(String filename) throws IOException {
FileInputStream input = null;
IOException readException = null;
try {
input = new FileInputStream(filename);
} catch (IOException ex) {
readException = ex;
} finally {
if(input != null){
try {
input.close();
} catch (IOException ex2) {
if(readException != null){
readException.addSuppressed(ex2); //注意这里
}else{
readException = ex2;
}
}
}
if(readException != null){
throw readException;
}
}
}
}
常记录日常看到琐碎java知识点,进步每一天!!!