Как следовать совету IntelliJ-IDEA "поймать ветвь идентично" в блоке try / catch? - PullRequest
0 голосов
/ 30 декабря 2018

Я использую "ObjectInputStream" для загрузки сериализованных массивов 2D-строк.

Проблема в том, что моя IDE, Intellij-IDEA, выдаст ошибку, если я не установлю специальное условие перехвата для исключения ClassNotFoundException.Однако, когда я делаю это, он советует: «'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 голосов
/ 30 декабря 2018

Благодаря комментарию guleryuz я узнал, что совет от IntelliJ пытался сказать мне, что я могу избавиться от уведомления о советах, изменив свой блок catch на catch (IOException | ClassNotFoundException e) вместо того, чтобы каждый оператор catch находился в отдельной строке.

Старая версия блока захвата:

} catch (IOException e) {
    e.printStackTrace();
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

Новая версия блока захвата:

} catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
}
...