Java 声明在不引发异常的情况下引发异常

Java 声明在不引发异常的情况下引发异常,java,ejb,jax-rs,javabeans,Java,Ejb,Jax Rs,Javabeans,我有几个EJB是从jax rs web服务调用的。然而,每次调用一个EJB方法时,我都会使用拦截器拦截调用。这个拦截器检查API键的参数,如果它不存在或不存在于我的数据库中,它将抛出一个我希望在jax rs代码中捕获的异常。然而,由于我的jax-rs类不知道抛出该异常的可能性,即使该异常可能是已检查的异常,这里的最佳实践是什么 声明我的EJB来抛出异常(从不自己抛出异常) 将我的异常设置为未检查的异常并进行检查 还有别的吗 我发现抛出一个未检查的异常是最好的。然后,我使用异常映射器捕获异常并处理

我有几个EJB是从jax rs web服务调用的。然而,每次调用一个EJB方法时,我都会使用拦截器拦截调用。这个拦截器检查API键的参数,如果它不存在或不存在于我的数据库中,它将抛出一个我希望在jax rs代码中捕获的异常。然而,由于我的jax-rs类不知道抛出该异常的可能性,即使该异常可能是已检查的异常,这里的最佳实践是什么

  • 声明我的EJB来抛出异常(从不自己抛出异常)
  • 将我的异常设置为未检查的异常并进行检查
  • 还有别的吗

  • 我发现抛出一个未检查的异常是最好的。然后,我使用异常映射器捕获异常并处理它


    剩下的唯一一件事就是禁止异常输出到日志文件。

    注意,如果您在EJB中抛出未经检查的异常,那么您需要使用
    @ApplicationException
    ,否则EJB容器将回滚异常并将其转换为EJBException。