在Spring Boot中,可以通過實現ErrorController
接口或者使用@ControllerAdvice
注解來捕獲全局異常。
方法一:實現ErrorController
接口
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"; // 返回錯誤頁面
}
}
application.properties
或application.yml
配置文件中設置錯誤頁面的路徑。方法二:使用@ControllerAdvice
注解
@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;
}
}
application.properties
或application.yml
配置文件中設置錯誤頁面的路徑。以上兩種方法都可以捕獲全局異常,并返回自定義的錯誤頁面或錯誤信息。