content: package com.ruoyi.common.exception.base;
  
  import com.ruoyi.common.utils.MessageUtils;
  import com.ruoyi.common.utils.StringUtils;
  
  /**
   * 基础异常
   * 
   * @author ruoyi
   */
  public class BaseException extends RuntimeException
  {
      private static final long serialVersionUID = 1L;
  
      /**
       * 所属模块
       */
      private String module;
  
      /**
       * 错误码
       */
      private String code;
  
      /**
       * 错误码对应的参数
       */
      private Object[] args;
  
      /**
       * 错误消息
       */
      private String defaultMessage;
  
      public BaseException(String module, String code, Object[] args, String defaultMessage)
      {
          this.module = module;
          this.code = code;
          this.args = args;
          this.defaultMessage = defaultMessage;
      }
  
      public BaseException(String module, String code, Object[] args)
      {
          this(module, code, args, null);
      }
  
      public BaseException(String module, String defaultMessage)
      {
          this(module, null, null, defaultMessage);
      }
  
      public BaseException(String code, Object[] args)
      {
          this(null, code, args, null);
      }
  
      public BaseException(String defaultMessage)
      {
          this(null, null, null, defaultMessage);
      }
  
      @Override
      public String getMessage()
      {
          String message = null;
          if (!StringUtils.isEmpty(code))
          {
              message = MessageUtils.message(code, args);
          }
          if (message == null)
          {
              message = defaultMessage;
          }
          return message;
      }
  
      public String getModule()
      {
          return module;
      }
  
      public String getCode()
      {
          return code;
      }
  
      public Object[] getArgs()
      {
          return args;
      }
  
      public String getDefaultMessage()
      {
          return defaultMessage;
      }
  }
  