我是 java 8 的新手。
以下是我的代码,
File file = new File("C:\\abc\\def\\ghi"); //def, ghi doesnot exists
file.mkdirs();
try {
file.createNewFile(); //throw IOE
} catch (IOE ioe) {
}
try (BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(file));) {
//some logic
} catch (IOE ioe) {
}
如何以 java 8 方式合并/重构两个 try-catch。
最佳答案
这取决于您所说的“合并”的含义。
如果您只是想拥有一个 catch
block ,那很简单:只需将第二个 try
移到第一个 block 内即可:
File file = new File("C:\\abc\\def\\ghi"); //def, ghi doesnot exists
file.mkdirs();
try {
file.createNewFile(); //throw IOE
try (BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(file))) {
//some logic
}
} catch (IOE ioe) {
// Common handling of IOE.
}
我不会尝试进一步合并它;第二个/内部 try
具有关闭流的语义。这是一件好事,需要一个 try
block 来完成。
关于java - 在java 8中合并try catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37785339/