首页>代码>Spring boot+springdata jpa+thymeleaf+mysql手机商城(带后台管理系统)>/mall/src/main/java/priv/jesse/mall/aspect/GlobalExceptionHandler.java
package priv.jesse.mall.aspect; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartException; import priv.jesse.mall.entity.pojo.ResultBean; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import java.io.Serializable; import java.util.Set; /** * 统一异常处理 * 在Controller中抛出的异常,GlobalExceptionHandler中定义的处理方法可以起作用 * 其他的业务层异常也可以单独处理 * * @author dengweichang * @date 2017/9/18 */ @ControllerAdvice public class GlobalExceptionHandler implements Serializable{ private static final long serialVersionUID = 1L; private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class); /** * 默认的异常处理 * * @param req * @param e * @return * @throws Exception */ @ExceptionHandler(value = Exception.class) @ResponseBody public ResultBean<String> defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception { //记录日志 LOGGER.error(e.getMessage(), e); e.printStackTrace(); ResultBean<String> r = new ResultBean<>(e); r.setData(req.getRequestURI()); return r; } @ExceptionHandler(value = RuntimeException.class) public void runtimeExceptionHandler(HttpServletRequest req, HttpServletResponse res, Exception e) throws Exception { //记录日志 LOGGER.error(e.getMessage(), e); req.setAttribute("msg", e.getMessage()); //转发到error页面 req.getRequestDispatcher("/mall/user/error.html").forward(req, res); } /** * 处理validation异常 * * @param req * @param e * @return * @throws Exception */ @ExceptionHandler(value = ConstraintViolationException.class) @ResponseBody public ResultBean<String> validationExceptionHandler(HttpServletRequest req, ConstraintViolationException e) throws Exception { Set<ConstraintViolation<?>> violations = e.getConstraintViolations(); StringBuilder strBuilder = new StringBuilder(); for (ConstraintViolation<?> violation : violations) { strBuilder.append(violation.getMessage() + ","); } LOGGER.error(strBuilder.toString(), e); ResultBean<String> r = new ResultBean(strBuilder.toString()); r.setData(req.getRequestURI()); return r; } }
最近下载更多
212828939 LV16
3月13日
www3209 LV1
3月2日
wbw123 LV5
3月1日
3175665836 LV2
2023年12月7日
SDLFJL LV6
2023年8月15日
zy3344 LV1
2023年7月3日
yzshabzbbdvw LV4
2023年4月20日
微信网友_5988700142981120 LV2
2023年4月12日
计算机暴龙战士 LV19
2023年4月2日
robert_s LV3
2023年2月20日