"Уловная ветка идентична", однако все же мне нужно ее поймать
Прочитав мой код, я заметил, что в моей среде IDE появилось предупреждение со следующим сообщением:
Сообщает идентичные разделы catch в блоках try в JDK 7. Для сглаживания разделов в секцию с несколькими лотками доступно быстрое решение.
И также указывает, что это предупреждение выдается для JDK 7 +
Блок try выглядит следующим образом:
try {
FileInputStream e = new FileInputStream("outings.ser");
ObjectInputStream inputStream = new ObjectInputStream(e);
return (ArrayList)inputStream.readObject();
} catch (FileNotFoundException var3) {
var3.printStackTrace();
} catch (ClassNotFoundException var5) {
var5.printStackTrace();
} catch (IOException ex){
ex.printStackTrace();
}
Однако при удалении (блоки catch, которые бросали это конкретное предупреждение):
catch (ClassNotFoundException var5) {
var5.printStackTrace();
} catch (IOException ex){
ex.printStackTrace();
}
Я все равно получаю ошибки:
ObjectInputStream inputStream = new ObjectInputStream(e);
return (ArrayList)inputStream.readObject();
Мне не хватает чего-то очевидного, что я до сих пор не понял?
Ответы
Ответ 1
Итак, поскольку я вижу такое же предупреждение в IntelliJ (и я думаю, что вы тоже используете IntelliJ), почему бы не позволить Alt + Enter (или Option + Return, если вы предпочитаете) показать, что это значит?
Вы можете свернуть ветки исключений, если они идентичны, и с синтаксисом с несколькими catch, вы завершите с одним оператором catch, который сделает то же самое, что и ваши три:
try {
FileInputStream e = new FileInputStream("outings.ser");
ObjectInputStream inputStream = new ObjectInputStream(e);
return (ArrayList)inputStream.readObject();
} catch (ClassNotFoundException | IOException var3) {
var3.printStackTrace();
}
return null;