private static string ExtractMessage(FutError futError)
        {
            futError.ThrowIfNullArgument();
            
            string result = "Code: " + futError.Code;
            if (!string.IsNullOrEmpty(futError.Reason))
                result += ", Reason: " + futError.Reason;
            if (!string.IsNullOrEmpty(futError.Message))
                result += ", Message: " + futError.Message;
            if (!string.IsNullOrEmpty(futError.Debug))
                result += ", Debug: " + futError.Debug;
            if (!string.IsNullOrEmpty(futError.String))
                result += ", String: " + futError.String;

            return result;
        }
 public NoSuchTradeExistsException(FutError futError, Exception innerException)
     : base(futError, innerException)
 {
 }
 public NotFoundException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public ExpiredSessionException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public PermissionDeniedException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public PurchasedItemsFullException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public DestinationFullException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public InternalServerException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public ConflictException(FutError futError, Exception innerException)
     : base(futError, innerException)
 {
 }
 public ServiceUnavailableException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public BadRequestException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public InvalidDeckException(FutError futError, Exception exception)
     : base(futError, exception)
 {
 }
 public FutErrorException(FutError futError, Exception innerException)
     : base(ExtractMessage(futError), innerException)
 {
     FutError = futError;
 }
 public FutErrorException(FutError futError)
     : base(ExtractMessage(futError))
 {
     FutError = futError;
 }
 public NotEnoughCreditException(FutError futError, Exception innerException)
     : base(futError, innerException)
 {
 }
 public CaptchaTriggeredException(FutError futError, Exception innerException)
     : base(futError, innerException)
 {
 }