Едно общо персонализирано изключение или много в Service Layer (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