почему hibernate изменил HibernateException на (непроверенный) RuntimeException - PullRequest
12 голосов
/ 06 января 2011

Я знаю, что в некоторых версиях исключения Hibernate были изменены, чтобы быть непроверенными.какова причина?Это философский или практический вопрос?

1 Ответ

17 голосов
/ 06 января 2011

Практическая.Таким образом, вам не нужно оборачивать каждую из ваших операций, касающихся Hibernate, в блоки try try.

Взято из Java Persistence с Hibernate:

История исключений - исключения и какони должны обрабатываться всегда и заканчиваться жаркими спорами между разработчиками Java.Неудивительно, что у Hibernate есть и примечательная история.До Hibernate 3.x все исключения, генерируемые Hibernate, были проверенными исключениями, поэтому каждый API Hibernate заставлял разработчика перехватывать и обрабатывать исключения.На эту стратегию повлиял JDBC, который также выбрасывает только проверенные исключения.Однако вскоре стало ясно, что это не имеет смысла, потому что все исключения, выдаваемые Hibernate, являются фатальными.Во многих случаях лучшее, что может сделать разработчик в этой ситуации, - это очистить, отобразить сообщение об ошибке и выйти из приложения.Поэтому, начиная с Hibernate 3.x, все исключения, генерируемые Hibernate, являются подтипами неконтролируемого исключения времени выполнения, которое обычно обрабатывается в одном месте в приложении.Это также делает устаревшим любой шаблон Hibernate или API-интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...