package com.xcong.excoin.configurations;
|
|
import com.xcong.excoin.common.exception.GlobalException;
|
import com.xcong.excoin.common.response.Result;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.dao.DuplicateKeyException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.validation.FieldError;
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
import javax.validation.ValidationException;
|
|
/**
|
* @author wzy
|
* @date 2020-05-08 15:40
|
**/
|
@RestControllerAdvice
|
@Slf4j
|
public class GlobalExceptionHandler {
|
|
/**
|
* 方法参数校验
|
*
|
* @param e
|
* @return
|
*/
|
@ExceptionHandler(value = {MethodArgumentNotValidException.class})
|
public Result handleException(MethodArgumentNotValidException e) {
|
log.error(e.getMessage());
|
FieldError fieldError = e.getBindingResult().getFieldError();
|
if (fieldError != null) {
|
return Result.fail(fieldError.getDefaultMessage());
|
} else {
|
return Result.fail("参数校验失败");
|
}
|
}
|
|
|
@ExceptionHandler(value = {ValidationException.class})
|
public Result handleException(ValidationException e) {
|
log.error(e.getMessage(), e);
|
return null;
|
}
|
|
@ExceptionHandler(value = {DuplicateKeyException.class})
|
public Result handleException(DuplicateKeyException e) {
|
log.error(e.getMessage(), e);
|
return null;
|
}
|
|
|
/**
|
* spring security 账户密码验证异常
|
*
|
* @param e
|
* @return
|
*/
|
@ExceptionHandler(value = { BadCredentialsException.class })
|
public Result handleException(BadCredentialsException e) {
|
log.error(e.getMessage(), e);
|
return Result.fail("用户名或密码错误");
|
}
|
|
@ExceptionHandler(value = {GlobalException.class})
|
public Result handleException(GlobalException e) {
|
return Result.fail(e.getMessage());
|
}
|
|
@ExceptionHandler(value = {Exception.class})
|
public Result handleException(Exception e) {
|
log.error(e.getMessage(), e);
|
return Result.fail("系统异常");
|
}
|
|
}
|