在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
配置文件中设置错误页面的路径。
以上两种方法都可以捕获全局异常,并返回自定义的错误页面或错误信息。