Есть несколько шаблонов, которые вы можете использовать.
Самое простое - просто объявить throws Exception
, но бросание Exception
- очень плохой выбор дизайна - это слишком высокий уровень. Фактически, Villan - это Hibernate - его методы должны быть объявлены как бросающие что-то более узкое, чем Exception
.
Лучший способ:
- определяет «исключение домена», например,
MyDatabaseException
- объявите ваш метод, чтобы бросить это
- перехватить, а затем повторно выдать исключение, заключенное в исключение вашего домена
Как это:
public void save(Inventory object) throws MyDatabaseException {
try {
factory.getCurrentSession().saveOrUpdate(object);
} catch (Exception e) {
throw new MyDatabaseException(e);
}
}
Этот второй подход является часто используемым шаблоном.
P.S. Если вы объедините это с хорошей идеей @ Seth о try-catch-finally, вы получите еще лучший подход.