Одно общее пользовательское исключение или несколько на уровне обслуживания (Spring)

Я создаю свой самый первый проект Spring (плюс Hibernate). Пока что я создал только две сущности: пользователя и группу. Для этих сущностей есть свои DAO. И теперь я нахожусь в сервисном слое.

Определяя интерфейс UserService, я начал задаваться вопросом, что лучше: 1. Создать общее пользовательское исключение с кодом ошибки (например, коды веб-ошибок: 404, 500...) или 2. Создать много специальных пользовательских исключений, таких как: UserNotExistException, GroupNotExist , UserNotActive, GroupNotActive...


person kazbeel    schedule 13.05.2014    source источник


Ответы (2)


Я думаю, что лучше иметь одно исключение для каждого значения исключения, а не для каждого объекта: NotExistsException, NotActive,... где вы можете передавать определенные сообщения (или даже объекты), чтобы показать больше информации об объекте, который вызвал исключение. Почему? Потому что, если приложение начнет расти:

  • Вам нужно будет создать много новых классов исключений, что означает много дополнительной работы.

  • Если смысл самого исключения не меняется из-за объекта (например, в NotExistsException), вы дублируете код.

  • Если вы хотите что-то изменить в виде исключения (например, добавить новый конструктор, изменить сообщение и т. д.), если у вас несколько классов, вам нужно будет изменить все эти файлы.

person Lucia Manescau    schedule 13.05.2014

Хорошо использовать общее пользовательское исключение с другим кодом ошибки вместе с трассировкой ошибки.

person Alok Pathak    schedule 13.05.2014