如何将@ExceptionHandler用于不同的响应类型

时间:2013-03-07 20:03:18

标签: java spring spring-mvc

我们有两组控制器。一个用于返回HttpEntity(用于ajax调用)和一个用于ModelAndView的响应。所有控制器都扩展了BaseController,我们在其中定义了异常处理。

@ExceptionHandler(Exception.class)
@ResponseBody
public ResponseEntity<String> handleException(final Exception e) {
  return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}

但是这个控制器只处理与响应'HttpEntity'而不是ModelAndView相关的控制器的异常。在这种情况下,我需要两个基本控制器来处理异常,还是可以修改现有的BaseController来处理所有异常?

1 个答案:

答案 0 :(得分:0)

每个控制器都应该有一个单独的handleException方法。

您应该只在BaseController中放置公共代码,但异常处理程序显然不常见,因为它们具有不同的逻辑。