springboot全局異常處理代碼怎么寫

小億
84
2024-01-11 23:40:28

在Spring Boot中,可以通過編寫一個(gè)全局異常處理器來處理應(yīng)用程序中的所有異常。以下是一個(gè)示例代碼,展示了如何實(shí)現(xiàn)全局異常處理。

首先,創(chuàng)建一個(gè)自定義的異常處理器類,實(shí)現(xiàn)@ControllerAdvice注解和@ExceptionHandler注解,這樣Spring Boot就會(huì)將其識(shí)別為全局異常處理器。

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception e) {
        // 在這里編寫異常處理邏輯
        // 可以根據(jù)具體的異常類型進(jìn)行不同的處理
        // 返回自定義的錯(cuò)誤消息或錯(cuò)誤碼
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
    }
}

handleException方法中,可以根據(jù)具體的異常類型進(jìn)行不同的處理邏輯,并返回自定義的錯(cuò)誤消息或錯(cuò)誤碼。

然后,在Spring Boot的主類中,添加@EnableWebMvc注解,以啟用全局異常處理。

@SpringBootApplication
@EnableWebMvc
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

這樣,當(dāng)應(yīng)用程序中拋出任何異常時(shí),都會(huì)被全局異常處理器捕獲并處理。

需要注意的是,全局異常處理器只能處理在Controller層拋出的異常,如果在Service層或其他地方拋出的異常需要進(jìn)行處理,可以在對(duì)應(yīng)的方法中使用try-catch塊來處理異常,并返回自定義的錯(cuò)誤消息或錯(cuò)誤碼。

0