Example #1
0
        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);
        }
Example #3
0
 private ServerErrorMessage(ClickHouseServerException exception)
 {
     Exception = exception ?? throw new ArgumentNullException(nameof(exception));
 }