溫馨提示×

springboot怎么捕獲全局異常

小億
161
2024-01-05 22:11:32
欄目: 編程語言

在Spring Boot中,可以通過實現ErrorController接口或者使用@ControllerAdvice注解來捕獲全局異常。

方法一:實現ErrorController接口

  1. 創建一個自定義的異常處理類,實現ErrorController接口,并重寫getErrorPath方法和處理異常的方法。
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CustomErrorController implements ErrorController {

    @Override
    public String getErrorPath() {
        return "/error"; // 定義錯誤頁面的路徑
    }

    @RequestMapping("/error")
    public String handleError() {
        // 處理異常的邏輯
        return "error"; // 返回錯誤頁面
    }
}
  1. application.propertiesapplication.yml配置文件中設置錯誤頁面的路徑。

方法二:使用@ControllerAdvice注解

  1. 創建一個全局異常處理類,使用@ControllerAdvice注解標記,并使用@ExceptionHandler注解定義處理異常的方法。
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ModelAndView handleException(Exception e) {
        // 處理異常的邏輯
        ModelAndView mav = new ModelAndView();
        mav.addObject("errorMsg", e.getMessage());
        mav.setViewName("error"); // 返回錯誤頁面
        return mav;
    }
}
  1. application.propertiesapplication.yml配置文件中設置錯誤頁面的路徑。

以上兩種方法都可以捕獲全局異常,并返回自定義的錯誤頁面或錯誤信息。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女