2016-05-31 143 views
2

我在寫一個Spring Boot應用程序。我現在正在執行異常處理。Java SpringBoot異常處理

我得到了以下問題。

我的異常處理程序是這樣的:

@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

你可以嘗試在你的ControllerAdvice人會補充@Order(N)註釋,迫使其註冊順序(其中N是int定義的順序)