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
239 +1
1
Ответы
1

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

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

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

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир