Java 在EJB3中,处理拦截器中异常的正确方法是什么?
我想为我的bean使用一个拦截器,它将检查给定连接令牌的有效性 如果连接无效,我想抛出一个特定的异常,如果连接过期,我想发送另一个异常(TokenExpiredException,类似这样的东西)。这些异常包括在提供给客户机的接口中Java 在EJB3中,处理拦截器中异常的正确方法是什么?,java,ejb-3.0,interceptor,Java,Ejb 3.0,Interceptor,我想为我的bean使用一个拦截器,它将检查给定连接令牌的有效性 如果连接无效,我想抛出一个特定的异常,如果连接过期,我想发送另一个异常(TokenExpiredException,类似这样的东西)。这些异常包括在提供给客户机的接口中 @AroundInvoke public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{ //code to check token
@AroundInvoke
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{
//code to check token
//...
throw new TokenExpiredException();
}
根据我的尝试,在拦截器中抛出这样的特定异常会导致客户端出现未声明的hrowableexception
。虽然这个例外包括对原因的引用,但它并不是真正理想的,不能用常规catch子句来处理
那么,用拦截器声明不同异常类型的正确方法是什么 我认为没有正确的方法。方法应该只抛出它们声明的异常,拦截器不应该添加新的异常
通过向所有方法引发的默认异常添加一个错误代码,我的个人案例得到了修复。我认为没有正确的方法做到这一点。方法应该只抛出它们声明的异常,拦截器不应该添加新的异常 通过向所有方法引发的默认异常添加错误代码,我的个人案例得到了修复