Java SpringBoot异常处理

时间:2016-05-31 15:10:16

标签: java exception-handling spring-boot

我正在写一个Spring Boot应用程序。我现在正在实施异常处理。

我遇到了以下问题。

我的异常处理程序如下所示:

@ControllerAdvice
public class SpecialExceptionHandler {

@ExceptionHandler(MissingServletRequestParameterException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseObject missingServletErrorHandler(HttpServletRequest req, MissingServletRequestParameterException exception) {

 //do something
return responseObject;
}}

我有一个看起来像

的常规异常处理程序
@ControllerAdvice
public class GeneralExceptionHandler {    

@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseObject defaultErrorHandler(HttpServletRequest req, Exception exception)  {
// do something
return responseObject;
}}

但是我遇到了一个问题:我的应用程序总是运行到GeneralExceptionHandler而不是特殊处理程序,除非我将GeneralExceptionHandler类的名称更改为在特殊异常处理程序之后按字母顺序排列的名称(例如,将'GeneralExceptionHandler'更改为'zGeneralExceptionHandler “)。

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

您可以尝试在@Order(N)上添加ControllerAdvice注释,以强制注册订单(其中N是定义订单的int