lxw
2023-05-25 f3c27fb78447449a950ba73c5e72ceda64ad8a12
src/main/java/com/whyc/exception/CustomExceptionResultHandler.java
@@ -1,6 +1,9 @@
package com.whyc.exception;
import com.whyc.constant.UserOperation;
import com.whyc.dto.Response;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
@@ -9,6 +12,7 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
@@ -20,8 +24,16 @@
    /**错误捕捉,状态码:202*/
    @ExceptionHandler(Exception.class)
    @ResponseStatus(HttpStatus.ACCEPTED)
    public Response sendErrorResponse2Defined(Exception e, HttpServletResponse response){
        return new Response().setII(0,"接口请求异常,请联系软件人员进行处理.异常信息"+e.toString());
    public Response sendErrorResponse2Defined(Exception e, HttpServletResponse response, HttpServletRequest request){
        String exceptionStr = e.toString();
        String requestURI = request.getRequestURI();
        //单项提取-登录超时
        if (exceptionStr.contains("login") && exceptionStr.contains("imeout")) {
                CommonUtil.record(ActionUtil.getUser().getUId(), UserOperation.TYPE_LOGIN_TIMEOUT.getType(), "登录请求超时", "异常信息:" + exceptionStr, UserOperation.TYPE_LOGIN_TIMEOUT.getTypeNameEn(), "exception message:" + exceptionStr);
        } else {
            CommonUtil.record(ActionUtil.getUser().getUId(), UserOperation.TYPE_EXCEPTION.getType(), "接口调用异常:调用接口" + requestURI + "发生错误:" + exceptionStr, UserOperation.TYPE_EXCEPTION.getTypeNameEn() + "Call Interface:" + requestURI + "error occurred:" + exceptionStr);
        }
        return new Response().setII(0, "接口请求异常,请联系软件人员进行处理.异常信息" + exceptionStr);
    }