1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-11 01:46:12 +00:00

More detailed error messages

This commit is contained in:
Jkorf 2021-01-11 09:28:00 +01:00
parent 15c1cfb0e4
commit 1714da3107
3 changed files with 42 additions and 6 deletions

View File

@ -126,7 +126,8 @@ namespace CryptoExchange.Net
} }
catch (Exception ex) catch (Exception ex)
{ {
var info = $"Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}"; var exceptionInfo = GetExceptionInfo(ex);
var info = $"Deserialize Unknown Exception: {exceptionInfo}";
return new CallResult<JToken>(null, new DeserializeError(info, data)); return new CallResult<JToken>(null, new DeserializeError(info, data));
} }
} }
@ -204,7 +205,8 @@ namespace CryptoExchange.Net
} }
catch (Exception ex) catch (Exception ex)
{ {
var info = $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}"; var exceptionInfo = GetExceptionInfo(ex);
var info = $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {exceptionInfo}";
log.Write(LogVerbosity.Error, info); log.Write(LogVerbosity.Error, info);
return new CallResult<T>(default, new DeserializeError(info, obj)); return new CallResult<T>(default, new DeserializeError(info, obj));
} }
@ -257,9 +259,11 @@ namespace CryptoExchange.Net
{ {
if (stream.CanSeek) if (stream.CanSeek)
stream.Seek(0, SeekOrigin.Begin); stream.Seek(0, SeekOrigin.Begin);
var exceptionInfo = GetExceptionInfo(ex);
var data = await ReadStream(stream).ConfigureAwait(false); var data = await ReadStream(stream).ConfigureAwait(false);
log.Write(LogVerbosity.Error, $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}, data: {data}"); log.Write(LogVerbosity.Error, $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {exceptionInfo}, data: {data}");
return new CallResult<T>(default, new DeserializeError($"Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}", data)); return new CallResult<T>(default, new DeserializeError($"Deserialize Unknown Exception: {exceptionInfo}", data));
} }
} }
@ -412,6 +416,30 @@ namespace CryptoExchange.Net
return path; return path;
} }
/// <summary>
/// Get's all exception messages from a nested exception
/// </summary>
/// <param name="ex"></param>
/// <returns></returns>
public static string GetExceptionInfo(Exception ex)
{
string result = "";
var padding = 0;
while (true)
{
result += ex.Message.PadLeft(ex.Message.Length + padding) + Environment.NewLine;
if (ex.InnerException == null)
break;
ex = ex.InnerException;
padding += 2;
}
return result;
}
/// <summary> /// <summary>
/// Dispose /// Dispose
/// </summary> /// </summary>

View File

@ -317,6 +317,13 @@
<param name="values">The values to fill</param> <param name="values">The values to fill</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:CryptoExchange.Net.BaseClient.GetExceptionInfo(System.Exception)">
<summary>
Get's all exception messages from a nested exception
</summary>
<param name="ex"></param>
<returns></returns>
</member>
<member name="M:CryptoExchange.Net.BaseClient.Dispose"> <member name="M:CryptoExchange.Net.BaseClient.Dispose">
<summary> <summary>
Dispose Dispose

View File

@ -266,8 +266,9 @@ namespace CryptoExchange.Net
} }
catch (HttpRequestException requestException) catch (HttpRequestException requestException)
{ {
log.Write(LogVerbosity.Warning, $"[{request.RequestId}] Request exception: " + (requestException.InnerException?.Message ?? requestException.Message)); var exceptionInfo = GetExceptionInfo(requestException);
return new WebCallResult<T>(null, null, default, new ServerError(requestException.Message)); log.Write(LogVerbosity.Warning, $"[{request.RequestId}] Request exception: " + exceptionInfo);
return new WebCallResult<T>(null, null, default, new WebError(exceptionInfo));
} }
catch (TaskCanceledException canceledException) catch (TaskCanceledException canceledException)
{ {