我有一個Spring 3.2應用程序,我創建了一個基於Spring MVC的REST API。我正在使用@ControllerAdvice註釋進行自定義異常處理。例如:Spring REST API自定義異常處理
@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通用的一種,GET方法中的ServletRequestBindingException
)。我怎樣才能擺脫這個問題?
謝謝!
'component-scan base-package'屬性中列出'RestResponseEntityExceptionHandler'包嗎? – zeroflagL
@zeroflagL是的,它是 – jarandaf
等一下,'ServletRequestBindingException'?聽起來像你的異常在處理器方法被調用之前拋出。 – zeroflagL