private static QQErrorCode GetErrorCode(Exception e)
{
if (e is TimeoutException) return QQErrorCode.IOTimeout;
if (e is IOException) return QQErrorCode.IOError;
if (e is ArgumentException) return QQErrorCode.InvalidParameter;
if (e is JsonException) return QQErrorCode.JsonError;
var webEx = e as WebException;
if (webEx != null)
{
switch (webEx.Status)
{
case WebExceptionStatus.Success: break;
case WebExceptionStatus.NameResolutionFailure: return QQErrorCode.InvalidParameter;
case WebExceptionStatus.ConnectFailure:
case WebExceptionStatus.ReceiveFailure:
case WebExceptionStatus.SendFailure:
case WebExceptionStatus.PipelineFailure:
return QQErrorCode.IOError;
case WebExceptionStatus.RequestCanceled:
break;
case WebExceptionStatus.ProtocolError:
break;
case WebExceptionStatus.ConnectionClosed:
break;
case WebExceptionStatus.TrustFailure:
break;
case WebExceptionStatus.SecureChannelFailure:
break;
case WebExceptionStatus.ServerProtocolViolation:
break;
case WebExceptionStatus.KeepAliveFailure:
break;
case WebExceptionStatus.Pending:
break;
case WebExceptionStatus.Timeout: return QQErrorCode.IOTimeout;
case WebExceptionStatus.ProxyNameResolutionFailure:
break;
case WebExceptionStatus.UnknownError: return QQErrorCode.UnknownError;
case WebExceptionStatus.MessageLengthLimitExceeded:
break;
case WebExceptionStatus.CacheEntryNotFound:
break;
case WebExceptionStatus.RequestProhibitedByCachePolicy:
break;
case WebExceptionStatus.RequestProhibitedByProxy:
break;
default:
break;
}
}
return QQErrorCode.UnknownError;
}