首页>代码>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;
}
}
最近下载更多
dane168 LV10
2月17日
212828939 LV16
2024年3月13日
www3209 LV1
2024年3月2日
wbw123 LV5
2024年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日

最近浏览