在try / catch块上如何遵循IntelliJ-IDEA的建议“ catch分支相同”?

时间:2018-12-30 19:06:54

标签: java intellij-idea serialization exception-handling try-catch

我正在使用“ 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;
}

1 个答案:

答案 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();
}