[英]What is the proper way to deal with Exceptions in Interceptors in EJB3?
我想对我的bean使用拦截器,它将检查给定连接令牌的有效性。
如果连接无效,我想抛出一个特定的异常,如果连接过期,我想发送另一个(TokenExpiredException,类似这样的东西)。 这些异常包含在提供给客户端的接口中。
@AroundInvoke
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{
//code to check token
//...
throw new TokenExpiredException();
}
根据我的尝试,在Interceptor中抛出这种特定的Exception会导致客户端的UndeclaredThrowableException
。 尽管此异常包括对原因的引用,但它并不是真正理想的方法,并且不能通过常规catch子句处理。
那么使用拦截器声明不同的异常类型的正确方法是什么?
我认为没有正确的方法可以做到这一点。 方法应该只抛出它们声明的异常,并且拦截器不应该添加新的异常。
通过将错误代码添加到所有方法抛出的默认异常中,我的情况得到了解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.