溫馨提示×

SpringBoot中怎么實現統(tǒng)一異常處理

小億
88
2024-03-07 19:26:28
欄目: 編程語言

在Spring Boot中,可以通過@ControllerAdvice注解來實現統(tǒng)一異常處理。以下是一個示例:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleException(Exception ex) {
        ErrorResponse errorResponse = new ErrorResponse("500", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }

    @ExceptionHandler(MyCustomException.class)
    public ResponseEntity<ErrorResponse> handleCustomException(MyCustomException ex) {
        ErrorResponse errorResponse = new ErrorResponse("400", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
    }

    @Data
    @AllArgsConstructor
    public static class ErrorResponse {
        private String code;
        private String message;
    }
}

在上面的示例中,我們定義了一個GlobalExceptionHandler類,并使用@ControllerAdvice注解來標識它是一個全局異常處理類。然后我們定義了兩個異常處理方法,分別處理Exception和MyCustomException類型的異常。在這些方法中,我們可以自定義返回的錯誤信息和HTTP狀態(tài)碼。

注意:為了讓Spring Boot能夠掃描到GlobalExceptionHandler類,需要確保它在應用程序的包或其子包中。

0