【发布时间】:2014-05-21 15:41:48
【问题描述】:
我的任务是将控制器中 @RequestMapping 方法抛出的异常作为 JSON 对象公开给 UI。在谷歌搜索时,我发现了 ControllerAdvice,我想我需要类似的东西。我在所有示例中看到的唯一问题是返回类型 - 它们返回 ModelAndView 而我需要返回自定义对象作为返回类型。这是我的示例代码:
控制器类:
@RequestMapping(value="/abc", method=RequestMethod.GET)
@ResponseBody
public MyModel getResponse(@RequestParam String id,
HttpServletRequest request) throws SQLException
{
boolean exceptionFlag = true;
if (exceptionFlag){
throw new SQLException();
}
return myModel;
}
异常处理程序类:
@ControllerAdvice
public class ExceptionHandler {
@ExceptionHandler(SQLException.class)
public MyCustomException handleSQLException(SQLException exception)
{
MyCustomException ex = new MyCustomException();
ex.setExceptionCode("MyCode");
ex.setExceptionDescription(exception.getMessage());
return ex;
}
它抱怨找不到 JSP(WARN:org.apache.jasper.servlet.JspServlet:PWC6117: File "rest\support\abc.jsp" not foundnull)
【问题讨论】:
标签: java spring rest exception-handling