Java 在EJB3中,处理拦截器中异常的正确方法是什么?

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

我想为我的bean使用一个拦截器,它将检查给定连接令牌的有效性

如果连接无效,我想抛出一个特定的异常,如果连接过期,我想发送另一个异常(TokenExpiredException,类似这样的东西)。这些异常包括在提供给客户机的接口中

@AroundInvoke
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{
    //code to check token
    //...
    throw new TokenExpiredException(); 
}
根据我的尝试,在拦截器中抛出这样的特定异常会导致客户端出现
未声明的hrowableexception
。虽然这个例外包括对原因的引用,但它并不是真正理想的,不能用常规catch子句来处理


那么,用拦截器声明不同异常类型的正确方法是什么

我认为没有正确的方法。方法应该只抛出它们声明的异常,拦截器不应该添加新的异常


通过向所有方法引发的默认异常添加一个错误代码,我的个人案例得到了修复。

我认为没有正确的方法做到这一点。方法应该只抛出它们声明的异常,拦截器不应该添加新的异常

通过向所有方法引发的默认异常添加错误代码,我的个人案例得到了修复