| # |
| # 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. |
| # |
| |
| class Timeout(Exception): |
| pass |
| |
| ## Messaging Errors |
| |
| class MessagingError(Exception): |
| |
| def __init__(self, code=None, text=None, **info): |
| self.code = code |
| self.text = text |
| self.info = info |
| if self.code is None: |
| msg = self.text |
| else: |
| msg = "%s(%s)" % (self.text, self.code) |
| if info: |
| msg += " " + ", ".join(["%s=%r" % (k, v) for k, v in self.info.items()]) |
| Exception.__init__(self, msg) |
| class InternalError(MessagingError): |
| pass |
| |
| ## Connection Errors |
| |
| class ConnectionError(MessagingError): |
| """ |
| The base class for all connection related exceptions. |
| """ |
| pass |
| |
| class ConnectError(ConnectionError): |
| """ |
| Exception raised when there is an error connecting to the remote |
| peer. |
| """ |
| pass |
| |
| class VersionError(ConnectError): |
| pass |
| |
| class AuthenticationFailure(ConnectError): |
| pass |
| |
| class ConnectionClosed(ConnectionError): |
| pass |
| |
| class HeartbeatTimeout(ConnectionError): |
| pass |
| |
| ## Session Errors |
| |
| class SessionError(MessagingError): |
| pass |
| |
| class Detached(SessionError): |
| """ |
| Exception raised when an operation is attempted that is illegal when |
| detached. |
| """ |
| pass |
| |
| class NontransactionalSession(SessionError): |
| """ |
| Exception raised when commit or rollback is attempted on a non |
| transactional session. |
| """ |
| pass |
| |
| class TransactionError(SessionError): |
| """Base class for transactional errors""" |
| pass |
| |
| class TransactionAborted(TransactionError): |
| """The transaction was automatically rolled back. This could be due to an error |
| on the broker, such as a store failure, or a connection failure during the |
| transaction""" |
| pass |
| |
| class TransactionUnknown(TransactionError): |
| """ The outcome of the transaction on the broker (commit or roll-back) is not |
| known. This occurs when the connection fails after we sent the commit but |
| before we received a response.""" |
| pass |
| |
| class UnauthorizedAccess(SessionError): |
| pass |
| |
| class ServerError(SessionError): |
| pass |
| |
| class SessionClosed(SessionError): |
| pass |
| |
| ## Link Errors |
| |
| class LinkError(MessagingError): |
| pass |
| |
| class InsufficientCapacity(LinkError): |
| pass |
| |
| class AddressError(LinkError): |
| pass |
| |
| class MalformedAddress(AddressError): |
| pass |
| |
| class InvalidOption(AddressError): |
| pass |
| |
| class ResolutionError(AddressError): |
| pass |
| |
| class AssertionFailed(ResolutionError): |
| pass |
| |
| class NotFound(ResolutionError): |
| pass |
| |
| class LinkClosed(LinkError): |
| pass |
| |
| ## Sender Errors |
| |
| class SenderError(LinkError): |
| pass |
| |
| class SendError(SenderError): |
| pass |
| |
| class TargetCapacityExceeded(SendError): |
| pass |
| |
| ## Receiver Errors |
| |
| class ReceiverError(LinkError): |
| pass |
| |
| class FetchError(ReceiverError): |
| pass |
| |
| class Empty(FetchError): |
| """ |
| Exception raised by L{Receiver.fetch} when there is no message |
| available within the alloted time. |
| """ |
| pass |
| |
| ## Message Content errors |
| class ContentError(MessagingError): |
| """ |
| This type of exception will be returned to the application |
| once, and will not block further requests |
| """ |
| pass |
| |
| class EncodeError(ContentError): |
| pass |
| |
| class DecodeError(ContentError): |
| pass |