1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-10 09:26:22 +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)
{
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));
}
}
@ -204,7 +205,8 @@ namespace CryptoExchange.Net
}
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);
return new CallResult<T>(default, new DeserializeError(info, obj));
}
@ -257,9 +259,11 @@ namespace CryptoExchange.Net
{
if (stream.CanSeek)
stream.Seek(0, SeekOrigin.Begin);
var exceptionInfo = GetExceptionInfo(ex);
var data = await ReadStream(stream).ConfigureAwait(false);
log.Write(LogVerbosity.Error, $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}, data: {data}");
return new CallResult<T>(default, new DeserializeError($"Deserialize Unknown Exception: {(ex.InnerException?.Message ?? ex.Message)}", data));
log.Write(LogVerbosity.Error, $"{(requestId != null ? $"[{requestId}] " : "")}Deserialize Unknown Exception: {exceptionInfo}, data: {data}");
return new CallResult<T>(default, new DeserializeError($"Deserialize Unknown Exception: {exceptionInfo}", data));
}
}
@ -412,6 +416,30 @@ namespace CryptoExchange.Net
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>
/// Dispose
/// </summary>

View File

@ -317,6 +317,13 @@
<param name="values">The values to fill</param>
<returns></returns>
</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">
<summary>
Dispose

View File

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