@PostConstruct和未经检查的异常

时间:2018-10-25 16:27:59

标签: java java-ee dependency-injection exception-handling java-annotations

我很难为plyr::rbind.fill()缠着Javadoc。它说:

  

如果该方法引发未经检查的异常,则不得放置该类   进入服务,但EJB可以处理的情况除外   例外甚至从中恢复

在Java的早期版本中,文档显示为:

  

该方法不得抛出已检查的异常

后一个要求似乎已被删除。这是什么意思?“如果该方法引发未经检查的异常,则该类不得投入使用”?在这种情况下,我应该选择检查异常而不是未检查异常吗?

请注意,我知道column definitions个类似的问题,但是Javadoc自此发生了变化,而我对 unchecked 场景的缺乏了解吸引了我。

1 个答案:

答案 0 :(得分:0)

  

“如果该方法引发未经检查的异常,则该类绝对不能投入使用”是什么意思?

确切的行为取决于管理bean的容器。

一个CDI bean实例将被丢弃并且不使用,这通常会导致不满意的依赖关系。不幸的是,我找不到任何参考。

EJB的一个实例将被丢弃,容器将回滚任何容器启动的事务。检查EJB 3.2 spec的“ 9.3.3 AroundConstruct,PostConstruct和PreDestroy生命周期回调的异常”部分。

  

在这种情况下,我应该选择检查异常而不是未检查异常吗?

@PostConstruct javadoc禁止从带注释的方法的正文中引发任何检查的异常。

相关问题