public static async ValueTask <ServerErrorMessage> Read(ClickHouseBinaryProtocolReader reader, bool async, CancellationToken cancellationToken) { var errorCode = await reader.ReadInt32(async, cancellationToken); var name = await reader.ReadString(async, cancellationToken); var errorMessage = await reader.ReadString(async, cancellationToken); var stackTrace = await reader.ReadString(async, cancellationToken); bool hasNested = await reader.ReadBool(async, cancellationToken); ClickHouseServerException exception; if (hasNested) { var nested = await Read(reader, async, cancellationToken); exception = new ClickHouseServerException(errorCode, name, errorMessage, stackTrace, nested.Exception); } else { exception = new ClickHouseServerException(errorCode, name, errorMessage, stackTrace); } return(new ServerErrorMessage(exception)); }
private static async Task <HttpResponseMessage> HandleError(HttpResponseMessage response, string query) { if (!response.IsSuccessStatusCode) { var error = await response.Content.ReadAsStringAsync().ConfigureAwait(false); throw ClickHouseServerException.FromServerResponse(error, query); } return(response); }
private ServerErrorMessage(ClickHouseServerException exception) { Exception = exception ?? throw new ArgumentNullException(nameof(exception)); }