Java SpringBoot异常处理
我正在编写一个Spring启动应用程序。我现在正在实现异常处理 我有以下问题 我的异常处理程序如下所示: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
@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
)