class MotanAbstractException extends RuntimeException {
    private static final long serialVersionUID = -8742311167276890503L;

    protected MotanErrorMsg motanErrorMsg = MotanErrorMsgConstant.FRAMEWORK_DEFAULT_ERROR;
    protected String errorMsg = null;

    public MotanAbstractException() {
        super();
    }

    public MotanAbstractException(MotanErrorMsg motanErrorMsg) {
        super();
        this.motanErrorMsg = motanErrorMsg;
    }

    public MotanAbstractException(String message) {
        this(message, (MotanErrorMsg) null);
    }

    public MotanAbstractException(String message, MotanErrorMsg motanErrorMsg) {
        super(message);
        this.motanErrorMsg = motanErrorMsg;
        this.errorMsg = message;
    }

    public MotanAbstractException(String message, MotanErrorMsg motanErrorMsg, boolean writableStackTrace) {
        this(message, null, motanErrorMsg, writableStackTrace);
    }

    public MotanAbstractException(String message, Throwable cause, MotanErrorMsg motanErrorMsg, boolean writableStackTrace) {
        super(message, cause, false, writableStackTrace);
        this.motanErrorMsg = motanErrorMsg;
        this.errorMsg = message;
    }

    public MotanAbstractException(String message, Throwable cause) {
        this(message, cause, null);
    }

    public MotanAbstractException(String message, Throwable cause, MotanErrorMsg motanErrorMsg) {
        super(message, cause);
        this.motanErrorMsg = motanErrorMsg;
        this.errorMsg = message;
    }

    public MotanAbstractException(Throwable cause) {
        super(cause);
    }

    public MotanAbstractException(Throwable cause, MotanErrorMsg motanErrorMsg) {
        super(cause);
        this.motanErrorMsg = motanErrorMsg;
    }

    @Override
    public String getMessage() {<FILL_FUNCTION_BODY>}

    public String getOriginMessage(){
        if (motanErrorMsg == null) {
            return super.getMessage();
        }

        String message;

        if (errorMsg != null && !"".equals(errorMsg)) {
            message = errorMsg;
        } else {
            message = motanErrorMsg.getMessage();
        }
        return message;
    }

    public int getStatus() {
        return motanErrorMsg != null ? motanErrorMsg.getStatus() : 0;
    }

    public int getErrorCode() {
        return motanErrorMsg != null ? motanErrorMsg.getErrorCode() : 0;
    }

    public MotanErrorMsg getMotanErrorMsg() {
        return motanErrorMsg;
    }
}

        String message = getOriginMessage();

        return "error_message: " + message + ", status: " + motanErrorMsg.getStatus() + ", error_code: " + motanErrorMsg.getErrorCode()
                + ",r=" + RpcContext.getContext().getRequestId();
    
<methods>public void <init>() ,public void <init>(java.lang.String) ,public void <init>(java.lang.Throwable) ,public void <init>(java.lang.String, java.lang.Throwable) <variables>static final long serialVersionUID