package com.gkhy.safePlatform.config.exception;
|
|
|
import com.gkhy.safePlatform.commons.enums.ResultCodes;
|
import com.gkhy.safePlatform.commons.exception.AusinessException;
|
import com.gkhy.safePlatform.commons.exception.BusinessException;
|
import com.gkhy.safePlatform.commons.vo.ResultVO;
|
import com.gkhy.safePlatform.emergency.excepiton.EmergencyException;
|
import com.gkhy.safePlatform.equipment.excepiton.EquipmentException;
|
import com.gkhy.safePlatform.incidentManage.exception.AccidentException;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.security.access.AccessDeniedException;
|
import org.springframework.security.core.AuthenticationException;
|
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
@ControllerAdvice
|
public class GlobalExceptionHandler {
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
/**
|
* 事故管理自定义异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = AccidentException.class)
|
public ResultVO AHandler(AccidentException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(e.getCode(),e.getMessage());
|
}
|
|
/**
|
* 应急预案自定义异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = EmergencyException.class)
|
public ResultVO AHandler(EmergencyException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(e.getCode(),e.getMessage());
|
}
|
/**
|
* 设备自定义异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = EquipmentException.class)
|
public ResultVO AHandler(EquipmentException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(e.getCode(),e.getMessage());
|
}
|
|
/**
|
* 自定义异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = AusinessException.class)
|
public ResultVO AHandler(AusinessException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(e.getCode(),e.getMessage());
|
}
|
|
|
/**
|
* 通用异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = BusinessException.class)
|
public ResultVO AHandler(BusinessException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(e.getCode(),e.getMessage());
|
}
|
|
|
/**
|
* @Description: AuthenticationException
|
*/
|
|
@ResponseBody
|
@ExceptionHandler(value = AuthenticationException.class)
|
public ResultVO CHandler(AuthenticationException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(ResultCodes.CLIENT_PERMISSION_NOT_ALLOW);
|
}
|
|
|
/**
|
* @Description: AuthenticationException
|
*/
|
|
@ResponseBody
|
@ExceptionHandler(value = AccessDeniedException.class)
|
public ResultVO DHandler(AccessDeniedException e) {
|
logger.warn(e.getMessage());
|
return new ResultVO(ResultCodes.CLIENT_PERMISSION_NOT_ALLOW);
|
|
}
|
|
|
/**
|
* @Description: 请求方法
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = HttpRequestMethodNotSupportedException.class)
|
public ResultVO DHandler(HttpRequestMethodNotSupportedException e) {
|
ResultVO resultVO = new ResultVO();
|
resultVO.setCode(ResultCodes.CLIENT_METHOD_NOT_MATCH.getCode());
|
resultVO.setMsg(e.getMessage());
|
return resultVO;
|
|
}
|
|
/**
|
* 系统错误异常
|
*/
|
@ResponseBody
|
@ExceptionHandler(value = Exception.class)
|
public ResultVO errorHandler(Exception e) {
|
e.printStackTrace();
|
logger.error(e.getMessage());
|
ResultVO resultVO = new ResultVO<>();
|
resultVO.setCode(ResultCodes.SERVER_ERROR.getCode());
|
return resultVO;
|
// return new ResultVO(ResultCodes.SERVER_ERROR);
|
}
|
/**
|
* 处理入参异常
|
* @param e
|
* @return
|
*/
|
@ResponseBody
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
public ResultVO handleMethodArgumentNotValidException(MethodArgumentNotValidException e){
|
logger.warn(e.getBindingResult().getFieldError().getDefaultMessage());
|
return new ResultVO(ResultCodes.SERVER_PARAM_NULL.getCode(),e.getBindingResult().getFieldError().getDefaultMessage());
|
}
|
}
|