异常处理机制

1.新建自定义异常类,继承MyException

public class PduMergeDataException extends MyException {

    private static final long serialVersionUID = 1L;

    //这两个参数用来在日志中输出
    protected static String innerCode = MyConstants.RETURN_CODE_PDU_MERGE_DATA_ERROR;
    protected static String innerMsg = MyConstants.RETURN_MSG_PDU_MERGE_DATA_ERROR;

    public PduMergeDataException(String val) {
        super(innerCode, innerMsg+"("+val+")");
    }
}
  1. 通用异常MyException类
public class MyException extends BaseException {
    private String innerCode = "";
    private String innerMsg = "";

    public MyException(String innerMsg) {
        super("api-ws", null, null, innerMsg);
        this.innerCode = MyConstants.RETURN_CODE_OTHER_EXCEPTION;
        this.innerMsg  = innerMsg;
    }

    //自定义异常类重写的是这个方法
    public MyException(String innerCode, String innerMsg) {
        super("api-ws", innerCode, null, innerMsg);
        this.innerCode = innerCode;
        this.innerMsg  = innerMsg;
    }

    public String getInnerCode() {
        return innerCode;
    }
    public String getInnerMsg() {
        return innerMsg;
    }
}
  1. 自定义异常处理类MyExceptionHandler
@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyExceptionHandler {
    private static final Logger log = LoggerFactory.getLogger(MyExceptionHandler.class);

    private static String resultError(String innerCode, String innerMsg, String outerCode, String outerMsg) {
        String returnErrorMsg = ReturnJsonFormat.jsonStr(outerCode, outerMsg);
        log.error(String.format("innerMsg=%s, %s, returnErrorMsg=%s"
                , innerCode, innerMsg, returnErrorMsg));
        return returnErrorMsg;
    }
    //处理自定义异常类
    @ExceptionHandler(PduMergeDataException.class)
    public String handlePduMergeDataException(PduMergeDataException e) {
        String outerCode = MyConstants.RETURN_CODE_PDU_MERGE_DATA_ERROR;
        String outerMsg = MyConstants.RETURN_MSG_PDU_MERGE_DATA_ERROR;
        return resultError(e.getInnerCode(), e.getInnerMsg(), outerCode, outerMsg);
    }
}

posted @ 2021-12-24 16:34  初夏那片海  阅读(41)  评论(0)    收藏  举报