src/exceptions.h (61 lines of code) (raw):

/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #pragma once #include <pulsar/Result.h> #include <exception> #include <string> struct PulsarException : std::exception { const pulsar::Result _result; std::string _msg = "Pulsar error: "; PulsarException(pulsar::Result res) : _result(res) { _msg += strResult(res); } const char* what() const noexcept override { return _msg.c_str(); } }; void raiseException(pulsar::Result result); #define INHERIT_PULSAR_EXCEPTION(name) \ struct name : PulsarException { \ using PulsarException::PulsarException; \ }; INHERIT_PULSAR_EXCEPTION(UnknownError) INHERIT_PULSAR_EXCEPTION(InvalidConfiguration) INHERIT_PULSAR_EXCEPTION(Timeout) INHERIT_PULSAR_EXCEPTION(LookupError) INHERIT_PULSAR_EXCEPTION(ConnectError) INHERIT_PULSAR_EXCEPTION(ReadError) INHERIT_PULSAR_EXCEPTION(AuthenticationError) INHERIT_PULSAR_EXCEPTION(AuthorizationError) INHERIT_PULSAR_EXCEPTION(ErrorGettingAuthenticationData) INHERIT_PULSAR_EXCEPTION(BrokerMetadataError) INHERIT_PULSAR_EXCEPTION(BrokerPersistenceError) INHERIT_PULSAR_EXCEPTION(ChecksumError) INHERIT_PULSAR_EXCEPTION(ConsumerBusy) INHERIT_PULSAR_EXCEPTION(NotConnected) INHERIT_PULSAR_EXCEPTION(AlreadyClosed) INHERIT_PULSAR_EXCEPTION(InvalidMessage) INHERIT_PULSAR_EXCEPTION(ConsumerNotInitialized) INHERIT_PULSAR_EXCEPTION(ProducerNotInitialized) INHERIT_PULSAR_EXCEPTION(ProducerBusy) INHERIT_PULSAR_EXCEPTION(TooManyLookupRequestException) INHERIT_PULSAR_EXCEPTION(InvalidTopicName) INHERIT_PULSAR_EXCEPTION(InvalidUrl) INHERIT_PULSAR_EXCEPTION(ServiceUnitNotReady) INHERIT_PULSAR_EXCEPTION(OperationNotSupported) INHERIT_PULSAR_EXCEPTION(ProducerBlockedQuotaExceededError) INHERIT_PULSAR_EXCEPTION(ProducerBlockedQuotaExceededException) INHERIT_PULSAR_EXCEPTION(ProducerQueueIsFull) INHERIT_PULSAR_EXCEPTION(MessageTooBig) INHERIT_PULSAR_EXCEPTION(TopicNotFound) INHERIT_PULSAR_EXCEPTION(SubscriptionNotFound) INHERIT_PULSAR_EXCEPTION(ConsumerNotFound) INHERIT_PULSAR_EXCEPTION(UnsupportedVersionError) INHERIT_PULSAR_EXCEPTION(TopicTerminated) INHERIT_PULSAR_EXCEPTION(CryptoError) INHERIT_PULSAR_EXCEPTION(IncompatibleSchema) INHERIT_PULSAR_EXCEPTION(ConsumerAssignError) INHERIT_PULSAR_EXCEPTION(CumulativeAcknowledgementNotAllowedError) INHERIT_PULSAR_EXCEPTION(TransactionCoordinatorNotFoundError) INHERIT_PULSAR_EXCEPTION(InvalidTxnStatusError) INHERIT_PULSAR_EXCEPTION(NotAllowedError) INHERIT_PULSAR_EXCEPTION(TransactionConflict) INHERIT_PULSAR_EXCEPTION(TransactionNotFound) INHERIT_PULSAR_EXCEPTION(ProducerFenced) INHERIT_PULSAR_EXCEPTION(MemoryBufferIsFull) INHERIT_PULSAR_EXCEPTION(Interrupted) #undef INHERIT_PULSAR_EXCEPTION