MST

星途 面试题库

面试题:Java在Spring Boot中如何自定义全局异常处理器

在Spring Boot项目中,阐述如何自定义一个全局异常处理器,用于捕获并处理特定类型的异常,例如业务逻辑异常。请说明实现步骤以及涉及到的关键注解和类。
44.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 创建全局异常处理器类:定义一个类,用于处理项目中的异常。
    • 添加异常处理方法:在类中编写方法来处理特定类型的异常,如业务逻辑异常。
    • 配置异常处理器:通过Spring的配置机制,使该处理器生效。
  2. 关键注解和类
    • @ControllerAdvice:该注解用于定义全局异常处理器,标识一个类可以处理多个Controller中的异常。
    • @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(BusinessLogicException.class)
    public ModelAndView handleBusinessLogicException(BusinessLogicException ex) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("errorMessage", ex.getMessage());
        modelAndView.setViewName("errorPage");
        return modelAndView;
    }
}

这里假设BusinessLogicException是自定义的业务逻辑异常类,errorPage是错误页面视图。当业务逻辑层抛出BusinessLogicException异常时,就会被这个全局异常处理器捕获并处理。