1

我有一个 Spring 3.2 应用程序,并且我创建了一个基于 Spring MVC 的 REST API。我正在使用 @ControllerAdvice 注释进行自定义异常处理。例如:

@ControllerAdvice
public class RestResponseEntityExceptionHandler {

    @ExceptionHandler(MyCustomException.class)
    @ResponseStatus(HttpStatus.CONFLICT)
    @ResponseBody
    public ExceptionMessage handleMyCustomException(MyCustomException ex){
        return new ExceptionMessage(ex.getClass().getName(), ex.getMessage(), ex.getExceptionCode());
    }
}

问题是我看到我的自定义异常是如何抛出的,但异常处理程序方法实际上没有被执行,因此我的异常消息没有返回给客户端。相反,我在日志中注意到 DefaultHandlerExceptionResolver 如何处理异常(使用 Spring 通用异常,ServletRequestBindingException在 GET 方法中)。我怎样才能摆脱这个问题?

谢谢!

4

1 回答 1

0

ServletRequestBindingException是在控制器的处理程序方法之前出现问题的提示。在这种情况下,一些绑定问题。

带有注释的异常处理程序仅在控制器处理程序方法 ( )@ExceptionHandler中引发异常时才被调用。@RequestMapping

于 2013-07-04T18:23:44.263 回答