我们正在使用store
拦截器。在极少数情况下,此拦截器会抛出Session Already Invalidate
异常,同时尝试在会话中放置错误消息(MessageStoreInterceptor
行:282)。
我试图覆盖这个拦截器并以静默方式浅化异常,然后执行操作。
看起来很简单,但是当异常发生时我无法找到应该返回的内容(如何获得下一个拦截器?!):
public class MyMessageStoreInterceptor extends MessageStoreInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
try{
return super.intercept(invocation);
}catch(IllegalStateException ex){
return ??;
}
}
}
答案 0 :(得分:2)
如果你想进入下一个拦截器,你应该返回invocation.invoke()
。它返回一个动作结果。如果由于异常而未获得结果,并且您希望继续操作调用,则应返回自己的结果或其中一个预定义结果,例如SUCCESS
或ERROR
。
@Override
public String intercept(ActionInvocation invocation) throws Exception {
try{
return super.intercept(invocation);
}catch(IllegalStateException ex){
return Action.ERROR;
}
}