public static void Check()

in csharp/rocketmq-client-csharp/StatusChecker.cs [29:109]


        public static void Check(Proto.Status status, IMessage request, string requestId)
        {
            var statusCode = status.Code;

            var statusMessage = status.Message;
            switch (statusCode)
            {
                case Proto.Code.Ok:
                case Proto.Code.MultipleResults:
                    return;
                case Proto.Code.BadRequest:
                case Proto.Code.IllegalAccessPoint:
                case Proto.Code.IllegalTopic:
                case Proto.Code.IllegalConsumerGroup:
                case Proto.Code.IllegalMessageTag:
                case Proto.Code.IllegalMessageKey:
                case Proto.Code.IllegalMessageGroup:
                case Proto.Code.IllegalMessagePropertyKey:
                case Proto.Code.InvalidTransactionId:
                case Proto.Code.IllegalMessageId:
                case Proto.Code.IllegalFilterExpression:
                case Proto.Code.IllegalInvisibleTime:
                case Proto.Code.IllegalDeliveryTime:
                case Proto.Code.InvalidReceiptHandle:
                case Proto.Code.MessagePropertyConflictWithType:
                case Proto.Code.UnrecognizedClientType:
                case Proto.Code.MessageCorrupted:
                case Proto.Code.ClientIdRequired:
                case Proto.Code.IllegalPollingTime:
                    throw new BadRequestException((int)statusCode, requestId, statusMessage);
                case Proto.Code.Unauthorized:
                    throw new UnauthorizedException((int)statusCode, requestId, statusMessage);
                case Proto.Code.PaymentRequired:
                    throw new PaymentRequiredException((int)statusCode, requestId, statusMessage);
                case Proto.Code.Forbidden:
                    throw new ForbiddenException((int)statusCode, requestId, statusMessage);
                case Proto.Code.MessageNotFound:
                    if (request is Proto.ReceiveMessageRequest)
                    {
                        return;
                    }

                    // Fall through on purpose.
                    goto case Proto.Code.NotFound;
                case Proto.Code.NotFound:
                case Proto.Code.TopicNotFound:
                case Proto.Code.ConsumerGroupNotFound:
                    throw new NotFoundException((int)statusCode, requestId, statusMessage);
                case Proto.Code.PayloadTooLarge:
                case Proto.Code.MessageBodyTooLarge:
                    throw new PayloadTooLargeException((int)statusCode, requestId, statusMessage);
                case Proto.Code.MessageBodyEmpty:
                    throw new PayloadEmptyException((int)statusCode, requestId, statusMessage);
                case Proto.Code.TooManyRequests:
                    throw new TooManyRequestsException((int)statusCode, requestId, statusMessage);
                case Proto.Code.RequestHeaderFieldsTooLarge:
                case Proto.Code.MessagePropertiesTooLarge:
                    throw new RequestHeaderFieldsTooLargeException((int)statusCode, requestId, statusMessage);
                case Proto.Code.InternalError:
                case Proto.Code.InternalServerError:
                case Proto.Code.HaNotAvailable:
                    throw new InternalErrorException((int)statusCode, requestId, statusMessage);
                case Proto.Code.ProxyTimeout:
                case Proto.Code.MasterPersistenceTimeout:
                case Proto.Code.SlavePersistenceTimeout:
                    throw new ProxyTimeoutException((int)statusCode, requestId, statusMessage);
                case Proto.Code.Unsupported:
                case Proto.Code.VersionUnsupported:
                case Proto.Code.VerifyFifoMessageUnsupported:
                    throw new UnsupportedException((int)statusCode, requestId, statusMessage);
                // Not used code.
                case Proto.Code.RequestTimeout:
                case Proto.Code.PreconditionFailed:
                case Proto.Code.NotImplemented:
                case Proto.Code.FailedToConsumeMessage:
                case Proto.Code.Unspecified:
                default:
                    Logger.LogWarning($"Unrecognized status code={statusCode}, requestId={requestId}, statusMessage={statusMessage}");
                    throw new UnsupportedException((int)statusCode, requestId, statusMessage);
            }
        }