声明抛出异常而不抛弃异常

Ter*_*yte 5 java ejb jax-rs javabeans

我有几个从jax-rs Web服务调用的EJB.但是,每次我调用其中一个EJB方法时,我都会使用拦截器拦截调用.此拦截器检查API密钥的参数,如果它不存在或不存在于我的数据库中,它将抛出我希望在我的jax-rs代码中捕获的异常.但是,由于我的jax-rs类不知道抛出此异常的可能性,即使异常可能是一个经过检查的异常,这里最好的做法是什么?

  1. 声明我的EJB抛出异常(没有抛出它们自己)
  2. 使我的异常成为未经检查的异常并检查它是否仍然存在?
  3. 别的什么?

Ter*_*yte 1

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

https://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/ExceptionMapper.html

唯一剩下的就是抑制异常输出到日志文件。