当前位置: 首页 > 面试题库 >

为什么hibernate将HibernateException更改为(未选中)RuntimeException

商辰钊
2023-03-14
问题内容

我知道在某些版本中,Hibernate异常已更改为未经检查。是什么原因?这是哲学问题还是实际问题?


问题答案:

实际的。因此,您不必将有关Hibernate的每一项操作都包装在try catch块中。

摘自Hibernate的Java Persistence:

异常的历史-异常及其应如何处理始终以Java开发人员之间的激烈辩论而告终。hibernate也具有一些值得注意的历史也就不足为奇了。在Hibernate
3.x之前,Hibernate抛出的所有异常都是经过检查的异常,因此每个Hibernate
API都强制开发人员捕获并处理异常。该策略受JDBC的影响,JDBC也仅引发检查的异常。但是,很快就知道这是没有意义的,因为Hibernate抛出的所有异常都是致命的。在许多情况下,开发人员在这种情况下最好的选择就是清理,显示错误消息并退出应用程序。因此,从Hibernate
3.x开始,Hibernate抛出的所有异常都是未经检查的Runtime
Exception的子类型,通常在应用程序中的单个位置进行处理。这也会使任何Hibernate模板或包装器API过时。




 类似资料:
  • 问题内容: 我知道在某些版本中,Hibernate异常已更改为未经检查。是什么原因?这是哲学问题还是实际问题? 问题答案: 实际的。因此,您不必将所有与Hibernate有关的操作都包装在try catch块中。 摘自Hibernate的Java Persistence: 异常的历史-异常及其处理方式总是以Java开发人员之间的激烈辩论而告终。休眠也具有一些值得注意的历史也就不足为奇了。在Hibe

  • 问题内容: 为什么Java中的两种异常类型分别称为“已检查”和“未检查”?这些名字背后的原因是什么? 问题答案: 如果您调用一个声明为抛出 检查 异常的方法(例如),则编译器将 检查 您是否正在捕获该异常或声明您将其重新抛出。同样,为了首先抛出这种检查过的异常,编译器会 检查 您是否已将其声明为方法签名的一部分。 基本上,它与类型检查有点像,只是在方法可以引发异常方面。 编译器不会对未检查的异常执

  • 问题内容: 我正在我的网站上工作,每当我在CSS文件中添加一些新行时,它只是不想使用我所做的行。 但是,他们应该没事。 举个例子。 CSS文件只在某一部分起作用,但是从某处开始只是停止使用我的文件。但是,它链接在< head >中。 我的HTML代码如下(请注意,这只是代码的一部分): 有人知道解决方案吗? 问题答案: 我忘了在CSS文件中关闭。这就是为什么所有代码​​都没有显示在页面上的原因。

  • 首先,我使用的是Ubuntu12.04,Eclipse Juno和maven 3.0.4(m2eclipse),我必须在一个从SVN存储库中获得的遗留项目中工作。

  • 新的py魅力版本(3.1.3社区版)建议将不适用于当前对象状态的方法转换为静态。 实际原因是什么?某种微性能(或内存)优化?

  • 我有以下信息: 我希望将权重和override_weight(可选字段)的类型更改为,因此我所做的是流动: 我的问题是,假设我有以前的protobuff消息编译器为旧消息编译的旧消息,我能将它们解析为新消息吗?文件对此非常模糊: “将可选字段移入或移出其中一个:消息序列化和分析后,您可能会丢失一些信息(某些字段将被清除)。但是,您可以安全地将单个字段移入新字段中,并且如果已知只设置了一个字段,则可