通过Spring控制器函数抛出异常的目的

时间:2014-04-02 09:41:04

标签: spring spring-mvc

我遇到了一些Spring控制器的函数,它们抛出了IOException。

@RequestMapping(method = ***)
@ResponseBody
public List<Offering> getOfferingDetailsList(HttpServletResponse response, @PathVariable("productIds") String productIdString, HttpServletRequest request) throws IOException

我怀疑使用这种异常抛出,当上面没有人抓住并处理它时。

设置响应状态如“response.setStatus(HttpStatus.SC_NOT_FOUND)”就可以了抛出这样的例外?
在控制器中处理异常的标准方法是什么?

2 个答案:

答案 0 :(得分:1)

拥有常见的异常处理功能总是好的,这样我们就可以使我们的控制器代码免于异常处理,通过外部化到常见的异常处理功能,我为此目的遇到了这个有趣的主题

http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

并且还使用全局异常处理程序,它将对所有控制器方法的所有异常执行此操作。这将集中处理异常,防止大量代码重复,并避免使控制器方法混乱。

查看@ControllerAdvice@ExceptionHandler注释。

答案 1 :(得分:0)

在Spring Controller中处理异常的一种相当标准的方法是使用@ExceptionHandler。

查看this帖子了解更多详情