Java Exceptions. Что делать с большим количеством исключений? Приветствую!
Допустим, у меня есть приложение с консольным вводом/выводом. Пользователь может вводить команды, а программа, в случае каких-то неверных действий юзера, подсказывает решение данной проблемы (checked exceptions).
Пусть пользователь повзаимодействовал с консолью и вызвал метод:public String foo() throws BlaBlaException, BlaFooException, FooFooExcpetion, InfinityException { // и так может очень много
//bla bla
throw new BlaBlaExcpetion();
//. . .
// bla bla
throw new InfinityException();
}
Представим, что все эти исключительные ситуации должен обработать сам пользователь. То есть, найдется в коцне концов уровень, который перехватит исключения и поможет юзверу.
Из примера метода видно, что здесь перебрасывается 4 исключения (throws ...) , и это уже немного глаза режет программисту. А если представить, что этих исключений будет не 4, а 10! А еще уровней перебрасывания будет штук 4-5! Это уже каким-то говнокодом попахивает... Или я не прав? Это нормальная практика или есть иной подход к этому?P.S. Знаю, что можно сделать одного предка для всех этих исключений, засунуть в него string с объяснением проблемы и перебросить его. Но что потом? Мне придется через switch все случаи рассматривать...

21 Авг 2019 в 06:32
213 +1
1
Ответы
1

Привет! Да, перебрасывание большого количества исключений может усложнить код и его понимание. Один из способов упростить эту ситуацию - использовать один общий предок для всех исключений и передавать в него информацию о проблеме через конструктор или методы. После чего можно использовать методы этого общего предка для обработки и решения проблемы в едином месте, без необходимости использования switch для различных исключений.

Также можно использовать обработку исключений через try-catch блоки вместо перебрасывания исключений, если это возможно и целесообразно для вашего приложения.

В любом случае, важно поддерживать читаемость и понятность вашего кода, поэтому выберите способ, который на ваш взгляд будет наиболее чистым и эффективным для вашего конкретного случая. Надеюсь, это поможет вам решить проблему с большим количеством исключений в вашем приложении.

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 757 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир