122 lines
4.5 KiB
Java
122 lines
4.5 KiB
Java
package com.cdzy.payment.config;
|
|
|
|
import cn.dev33.satoken.exception.NotLoginException;
|
|
import com.alibaba.nacos.shaded.com.google.gson.JsonSyntaxException;
|
|
import com.cdzy.common.model.response.JsonResult;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.validation.ConstraintViolationException;
|
|
import jakarta.validation.UnexpectedTypeException;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.http.converter.HttpMessageConversionException;
|
|
import org.springframework.http.converter.HttpMessageNotReadableException;
|
|
import org.springframework.jdbc.BadSqlGrammarException;
|
|
import org.springframework.validation.BindException;
|
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
|
|
import java.sql.SQLSyntaxErrorException;
|
|
|
|
/**
|
|
* 全局异常处理
|
|
* @author attiya
|
|
* @since 2023-6-14
|
|
*
|
|
*/
|
|
@RestControllerAdvice(annotations = RestController.class)
|
|
@Slf4j
|
|
public class GlobalExceptionHandler {
|
|
|
|
@ExceptionHandler(NotLoginException.class)
|
|
public JsonResult<?> bindExceptionHandler(NotLoginException e) {
|
|
log.error(e.toString());
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
@ExceptionHandler(BindException.class)
|
|
public JsonResult<?> bindExceptionHandler(BindException e) {
|
|
log.error(e.toString());
|
|
return JsonResult.failed(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
|
|
}
|
|
|
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
|
public JsonResult<?> bindExceptionHandler(MethodArgumentNotValidException e) {
|
|
log.error(e.toString());
|
|
String message = e.getBindingResult().getAllErrors().get(0).getDefaultMessage();
|
|
return JsonResult.failed(message);
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, JsonSyntaxException e) {
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed("数据格式化错误");
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, SQLSyntaxErrorException e) {
|
|
// LogFactory.getLog(super.getClass()).error(e.getMessage(), e);
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed("系统错误");
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, BadSqlGrammarException e) {
|
|
// LogFactory.getLog(super.getClass()).error(e.getMessage(), e);
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed("系统错误");
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, NumberFormatException e) {
|
|
// LogFactory.getLog(super.getClass()).error(e.getMessage(), e);
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, HttpMessageNotReadableException e) {
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed("请输入指定格式的参数");
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, UnexpectedTypeException e) {
|
|
// e.printStackTrace();
|
|
log.error(request.getServletPath());
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
@ExceptionHandler({ConstraintViolationException.class})
|
|
@ResponseBody
|
|
public JsonResult<?> handleMethodArgumentNotValidException(HttpServletRequest request, ConstraintViolationException e) {
|
|
// e.printStackTrace();
|
|
log.error(request.getServletPath(), e);
|
|
String[] msgs = e.getMessage().split(":");
|
|
return JsonResult.failed(msgs[msgs.length - 1].trim());
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, HttpMessageConversionException e) {
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
@ResponseBody
|
|
@ExceptionHandler
|
|
public JsonResult<?> exp(HttpServletRequest request, Exception e) {
|
|
// LogFactory.getLog(super.getClass()).error(e.getMessage(), e);
|
|
log.error(request.getServletPath(), e);
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
}
|