package io.gisbi.exception; import io.gisbi.i18n.Translator; import io.gisbi.result.ResultCode; import io.gisbi.result.ResultMessage; import io.gisbi.utils.LogUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.validation.ObjectError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public ResultMessage MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) { ObjectError objectError = e.getBindingResult().getAllErrors().get(0); String msg = objectError.getDefaultMessage(); msg = Translator.get(msg); LogUtil.error(msg); return new ResultMessage(ResultCode.PARAM_IS_INVALID.code(), msg); } @ExceptionHandler(DEException.class) public ResultMessage deExceptionHandler(DEException e) { LogUtil.error(e.getMessage(), e); return new ResultMessage(e.getCode(), e.getMessage()); } @ExceptionHandler(NullPointerException.class) public ResultMessage noUserExceptionHandler(Exception e) { String message = e.getMessage(); LogUtil.error(message, e); if (StringUtils.contains(message, "Cannot invoke \"io.dataease.auth.bo.TokenUserBO.getUserId()\" because \"user\" is null")) { return new ResultMessage(ResultCode.USER_NOT_LOGGED_IN.code(), ResultCode.USER_NOT_LOGGED_IN.message()); } return new ResultMessage(ResultCode.PARAM_IS_BLANK.code(), message); } }