2013-04-23 46 views
1

我想抛出控制器的异常。我怎样才能做到这一点?如何在休息控制器中抛出异常

@RequestMapping(value = "user", method = RequestMethod.POST, headers = "Accept=application/xml, application/json") 
public @ResponseBody 
AppUserDTO registerUser(@RequestBody AppUserDTO userDTO) { 


     return userService.registerUser(userDTO); 

} 

在这个返回中它会抛出异常。有什么注释可以使用吗?如何将异常作为JSON传递给客户端?

+0

我的选择是直接读取HTTP响应和Json。与所有这个对象抽象层的废话heck;)恕我直言...... – paulsm4 2013-04-23 03:53:05

+0

我们可以有一个ResponseDTO包含异常详细信息和AppUserDTO将扩展ResponseDTO.Then控制器的返回类型将ResponseDTO.I不知道是否这适合REST风格。 – 2013-04-23 05:05:21

回答

4

您似乎在使用Spring-MVC。有一些例外,默认情况下,映射到特定的HTTP错误代码。你可以找到这些位置的列表:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-rest-spring-mvc-exceptions

你扔将导致HTTP 500回应任何其他未捕获的异常。

有关如何在Spring中使用异常的详细答案,建议您详细阅读链接页面或Google“Spring MVC Exception”。在这个博客上的异常处理