溫馨提示×

SpringBoot中怎么處理異常

小億
84
2024-04-18 15:01:10
欄目: 編程語言

在SpringBoot中處理異常可以通過編寫一個全局異常處理器來實現(xiàn)。一般情況下,我們可以繼承Spring的ResponseEntityExceptionHandler類,并重寫handleException方法來處理異常。具體實現(xiàn)步驟如下:

  1. 創(chuàng)建一個全局異常處理器類,例如GlobalExceptionHandler。
@ControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> handleAllExceptions(Exception ex, WebRequest request) {
        // 處理所有異常
        ErrorResponse errorResponse = new ErrorResponse("500", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }

    @ExceptionHandler(NotFoundException.class)
    public ResponseEntity<Object> handleNotFoundException(NotFoundException ex, WebRequest request) {
        // 處理自定義異常
        ErrorResponse errorResponse = new ErrorResponse("404", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND);
    }
}
  1. 定義一個自定義異常類,例如NotFoundException。
public class NotFoundException extends RuntimeException {

    public NotFoundException(String message) {
        super(message);
    }
}
  1. 在Controller中拋出異常。
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        throw new NotFoundException("Resource not found");
    }
}

通過以上步驟,我們就可以在SpringBoot項目中統(tǒng)一處理異常,并返回統(tǒng)一的錯誤信息給客戶端。在GlobalExceptionHandler中,我們可以定義不同的異常處理方法來處理不同類型的異常,以實現(xiàn)更細粒度的異常處理。

0