例如,在统一 controller和从处理异常
@Controller
public class GlobalController {
/**
* 用于处理异常的
* @return
*/
@ExceptionHandler({MyException.class})
public String exception(MyException e) {
System.out.println(e.getMessage());
e.printStackTrace();
return "exception";
}
返回string是没有问题的,但是返回一个对象就不行了。
经过查证,应该是
@ExceptionHandler 只能返回String和 ModelAndView
于是思路就有了:
可以用如下方式返回:
private MappingJacksonJsonView jsonView = new MappingJacksonJsonView();
@ExceptionHandler(Exception.class)
public ModelAndView handleAnyException( Exception ex )
{
return new ModelAndView( jsonView, "error", new ErrorMessage( ex ) );
}
直接返回json的modelandview,问题解决~~
参考: