Java SpringBoot异常处理

Java SpringBoot异常处理,java,exception-handling,spring-boot,Java,Exception Handling,Spring Boot,我正在编写一个Spring启动应用程序。我现在正在实现异常处理 我有以下问题 我的异常处理程序如下所示: @ControllerAdvice public class SpecialExceptionHandler { @ExceptionHandler(MissingServletRequestParameterException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public ResponseObject missingServl

我正在编写一个Spring启动应用程序。我现在正在实现异常处理

我有以下问题

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

@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”)


如何解决此问题?

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