声明抛出异常而不抛出它
Declaring to throw an exception without ever throwing it
我有几个从 jax-rs Web 服务调用的 EJB。但是,每次我调用其中一个 EJB 方法时,我都会使用拦截器拦截调用。此拦截器检查 API 键的参数,如果它不存在或不存在于我的数据库中,它将抛出一个异常,我希望在我的 jax-rs 代码中捕获该异常。但是,由于我的 jax-rs class 不知道抛出此异常的可能性,即使该异常可能是已检查的异常,这里的最佳实践是什么?
- 声明我的 EJB 抛出异常(而不是自己抛出异常)
- 将我的异常设为未经检查的异常并仍然检查它?
- 还有别的吗?
我发现抛出未经检查的异常是最好的。然后我使用异常映射器来捕获异常并处理它。
https://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/ExceptionMapper.html
唯一剩下的就是抑制异常输出到日志文件。
我有几个从 jax-rs Web 服务调用的 EJB。但是,每次我调用其中一个 EJB 方法时,我都会使用拦截器拦截调用。此拦截器检查 API 键的参数,如果它不存在或不存在于我的数据库中,它将抛出一个异常,我希望在我的 jax-rs 代码中捕获该异常。但是,由于我的 jax-rs class 不知道抛出此异常的可能性,即使该异常可能是已检查的异常,这里的最佳实践是什么?
- 声明我的 EJB 抛出异常(而不是自己抛出异常)
- 将我的异常设为未经检查的异常并仍然检查它?
- 还有别的吗?
我发现抛出未经检查的异常是最好的。然后我使用异常映射器来捕获异常并处理它。
https://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/ExceptionMapper.html
唯一剩下的就是抑制异常输出到日志文件。