package com.aurora.controller; import com.aurora.exception.BizException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; //业务异常处理控制器,用于统一处理BizException类型的异常 @Api(tags = "异常处理模块") @RestController//返回的结果会直接作为响应体返回 public class BizExceptionController { @SneakyThrows //用于隐藏异常的显示抛出声明(不用写throws Exception等声明) @ApiOperation("/处理BizException") @RequestMapping("/bizException")//映射请求路径为:/bizException,接收该路径的请求来处理异常 public void handleBizException(HttpServletRequest request) { //HttpServletRequest request:通过请求对象获取存储在其中的异常信息 if (request.getAttribute("bizException") instanceof BizException) { //如果是BizException类型,先打印该异常信息,再将其强制转换为BizException并抛出 System.out.println(request.getAttribute("bizException")); throw ((BizException) request.getAttribute("bizException")); } else { throw new Exception();//抛出新的Exception } } }