org.yes.tools.handle.GlobalBizExceptionHandler Maven / Gradle / Ivy
//package org.yes.tools.handle;
//
//import com.alibaba.csp.sentinel.Tracer;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.core.annotation.Order;
//import org.springframework.http.HttpStatus;
//import org.springframework.util.Assert;
//import org.springframework.validation.BindException;
//import org.springframework.validation.FieldError;
//import org.springframework.web.bind.MethodArgumentNotValidException;
//import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.ResponseStatus;
//import org.springframework.web.bind.annotation.RestControllerAdvice;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// *
// * 全局异常处理器结合sentinel 全局异常处理器不能作用在 oauth server https://gitee.com/log4j/pig/issues/I1M2TJ
// *
// *
// * @author Co.
// * @date 2023/10/24 10:24
// */
//@Slf4j
//@Order(10000)
//@RestControllerAdvice
//public class GlobalBizExceptionHandler {
//
// /**
// * 全局异常.
// *
// * @param e the e
// * @return R
// */
// @ExceptionHandler(Exception.class)
// @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
// public Map handleGlobalException(Exception e) {
// log.error("全局异常信息 ex={}", e.getMessage(), e);
// Map map = new HashMap();
// // 业务异常交由 sentinel 记录
// Tracer.trace(e);
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", e.getLocalizedMessage());
// map.put("data", null);
// return map;
// }
//
// /**
// * 处理RuntimeException
// *
// * @param e
// * @return
// */
// @ExceptionHandler(RuntimeException.class)
// @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
// public Map handleRuntimeException(RuntimeException e) {
// log.error("RuntimeException信息 ex={}", e.getMessage(), e);
// Map map = new HashMap();
// // 业务异常交由 sentinel 记录
// Tracer.trace(e);
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", e.getLocalizedMessage());
// map.put("data", null);
// return map;
// }
//
// @ExceptionHandler(RuntimeException.class)
// @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
// public Map handleYesException(RuntimeException e) {
// log.error("RuntimeException信息 ex={}", e.getMessage(), e);
// Map map = new HashMap();
// // 业务异常交由 sentinel 记录
// Tracer.trace(e);
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", e.getLocalizedMessage());
// map.put("data", null);
// return map;
// }
//
// /**
// * 处理业务校验过程中碰到的非法参数异常 该异常基本由{@link Assert}抛出
// *
// * @param exception 参数校验异常
// * @return API返回结果对象包装后的错误输出结果
// * @see Assert#hasLength(String, String)
// * @see Assert#hasText(String, String)
// * @see Assert#isTrue(boolean, String)
// * @see Assert#isNull(Object, String)
// * @see Assert#notNull(Object, String)
// */
// @ExceptionHandler(IllegalArgumentException.class)
// @ResponseStatus(HttpStatus.OK)
// public Map handleIllegalArgumentException(IllegalArgumentException exception) {
// log.error("非法参数,ex = {}", exception.getMessage(), exception);
// Map map = new HashMap();
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", exception.getMessage());
// return map;
// }
//
// /**
// * validation Exception
// *
// * @param exception
// * @return R
// */
// @ExceptionHandler({MethodArgumentNotValidException.class})
// @ResponseStatus(HttpStatus.BAD_REQUEST)
// public Map handleBodyValidException(MethodArgumentNotValidException exception) {
// List fieldErrors = exception.getBindingResult().getFieldErrors();
// log.warn("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
// Map map = new HashMap();
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", String.format("%s %s", fieldErrors.get(0).getField(), fieldErrors.get(0).getDefaultMessage()));
// map.put("data", null);
// return map;
// }
//
// /**
// * validation Exception (以form-data形式传参)
// *
// * @param exception
// * @return R
// */
// @ExceptionHandler({BindException.class})
// @ResponseStatus(HttpStatus.BAD_REQUEST)
// public Map bindExceptionHandler(BindException exception) {
// List fieldErrors = exception.getBindingResult().getFieldErrors();
// log.warn("参数绑定异常,ex = {}", fieldErrors.get(0).getDefaultMessage());
// Map map = new HashMap();
// map.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
// map.put("message", fieldErrors.get(0).getDefaultMessage());
// map.put("data", null);
// return map;
// }
//
//}