@MaxLich
java developer

Писать свои эксепшены — это хорошо или плохо?

Здравствуйте. Зашёл спор со старшим инженером-программистом о создании своих собственных эксепшенов. Он считает, что не стоит их писать, если там не добавляешь никакой новой функциональности (по сути только название меняешь), мол, не нужно плодить лишние сущности. Я в некоторых источниках в сети видел/слышал, что нужно писать свои собственные эксепшены, а не выкидывать класс Exception или выкидывать специфический эксепшн в каком-то другом, левом слое (например, вышестоящем; как пример - выкидывать во view SQLException). Причём это говорили/писали опытные программисты. Сам я тоже согласен с ними. Пока стараюсь делать именно так.

Так как лучше делать? (в плане стиля, а также поддерживаемости и надёжности программы)
  • Вопрос задан
  • 1014 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Исключения класса Exception действительно выбрасывать не надо. Исключение должно быть конкретным. В стандартной библиотеке есть исключения почти на все случаи жизни. Вот их-то и надо выбрасывать. А если подходящего нет, тогда наследовать свой вариант.
Ответ написан
если там не добавляешь никакой новой функциональности
Сам по себе тип исключения - это уже новая функциональность, потому что можно гибко управлять обработкой в catch-блоках. Собственно, в основном для этого специализированные классы исключений и создают. Если такого управления нет, то и делать свои классы не нужно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Vasiliy_M
Академически - прав ты, практически - прав твой коллега.
Если нет сложной логики управления исключниями, то и плодить их особого смысла нет.
Мне, напрмиер, за много времени своей практики, ни разу не приходилось делать что-либо в зависимости от типа исключения.
Ответ написан
Вопрос поставлен не правильно.
Свои exception это ни хорошо и не плохо.
Вопрос в другом - "Зачем?"
Какой смысл несут свои исключения.
Как только вы ответите на этот вопрос, вам будет понятно "хорошо это или плохо"
Ответ написан
@sidny_vicious
Тут нужно смотреть на свой проект.
Чаще всего хватает стандартных Exception, но при использовании собственных библиотек с очень узкой спецификой, стоит обзавестись собственными исключениями.

Как стоит делать?

Исключения стоит всегда отлавливать и никогда не выбрасывать просто так. Программа в исключительной ситуации должна обработать исключение и сообщить пользователю, что возникла ошибка, прервать выполнение кода с ошибкой и перевести пользователя на предыдущий экран или в область, где гарантируется стабильная работа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы