Объясните пожалуйста, не могу понять почему нужно делать два catch, а не вот так:
} catch (IOException e) {
BEAN.log(e);
if (e instanceof FileSystemException){
throw e;
}
Ведь IOExeption это общий класс и для FileSystemException и для CharConversionException?
Seroygin
36 уровень
Что чему принадлежит?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Михаил
24 июля 2021, 17:05
представь что ошибка это косточка и ты должен скормить одному из псов ее. а когда скормишь, то косточка исчезнет. и не которые псы едят только особые косточки, поэтому если им предложить и они откажутся, то следующему предложить. А ты всеядному предлагаешь кость и она исчезает в его желудке. Все.
0
Seroygin
25 июля 2021, 06:53
Спасибо, насколько я понял тут всё дело в объявлении типа ошибки "(IOException e)" и дальнейшей передаче её "throw e;" в этом случае компилятор ругается что нет дальнейшего перехватчика именно IOException поскольку после выхода из этого блока она перестаёт быть FileSystemException и становится IOException.
0