Подтвердить что ты не робот

Почему hibernate сменил HibernateException на (unchecked) RuntimeException

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

4b9b3361

Ответ 1

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

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

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