我正在使用“ ObjectInputStream”加载序列化的2D String数组。
问题是,除非我为ClassNotFoundException放置特殊的捕获条件,否则我的IDE(Intellij-IDEA)将引发错误。但是,当我这样做时,建议使用“ 'catch' branch identical to 'IOException' branch
”。
我不知道这意味着我应该做什么。
如何在不得到建议或错误的情况下加载序列化对象?
我的代码:
private String[][] getPossArray(String race, boolean isFirstName) {
String[][] retVal = new String[0][];
try {
FileInputStream fis = new FileInputStream("./res/binary_files/Human_FirstNameString[][].ser");
ObjectInputStream ois = new ObjectInputStream(fis);
retVal = (String[][]) ois.readObject();
ois.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return retVal;
}
答案 0 :(得分:2)
由于guleryuz的评论,我发现IntelliJ的建议试图告诉我可以通过将catch块更改为catch (IOException | ClassNotFoundException e)
来摆脱建议通知,而不是单独拥有每个catch语句线。
旧的捕获块版本:
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
新的捕获块版本:
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}