【发布时间】:2017-01-18 22:21:39
【问题描述】:
我有一个 Spring MVC 控制器抛出两种异常:
@RequestMapping(value = "forwardRefundApply",method = RequestMethod.GET)
public ModelAndView forwardRefundApply1(String ticketNbr)throws Exception {
if(true)
throw new Exception();
else
throw new ApplicationException("test");
}
然后我编写一个 AOP 类来处理异常,然后像这样返回模型:
@Pointcut("execution(public * ..*(..))")
public void getRefundPointCut() {
}
@AfterThrowing(pointcut="getRefundPointCut()", throwing="e")
public ModelAndView throwException(Exception e){
ModelAndView mav = null;
if(e instanceof ApplicationException)
{
e.printStackTrace();
mav = new ModelAndView(CommonConstants.ERRORPAGE);
mav.addObject("errorMsg", "application error");
return mav;
}
else{
e.printStackTrace();
mav = new ModelAndView(CommonConstants.ERRORPAGE);
mav.addObject("errorMsg", "system error");
return mav;
}
}
aop 是工作。但结果是错误的。系统错误:
org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是 java.lang.NoSuchMethodError
Aspect 类是否无法将 ModelAndView 返回给 Controller?
【问题讨论】:
-
发布完整的堆栈跟踪。
标签: java spring-mvc aop