diff options
author | Rafael H. Schloming <rhs@apache.org> | 2010-04-13 11:21:38 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2010-04-13 11:21:38 +0000 |
commit | 118c4bb7fa781bbb4512a66ba1ca618e70abe64b (patch) | |
tree | 7b61c7420cd0736ecdb5b5c05d04b3488a3476cf /python/qpid/messaging/exceptions.py | |
parent | 96367205ad9e9a1d24069845683a59e5f36c9683 (diff) | |
download | qpid-python-118c4bb7fa781bbb4512a66ba1ca618e70abe64b.tar.gz |
added more complete exception handling/hierarchy
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@933560 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/messaging/exceptions.py')
-rw-r--r-- | python/qpid/messaging/exceptions.py | 86 |
1 files changed, 79 insertions, 7 deletions
diff --git a/python/qpid/messaging/exceptions.py b/python/qpid/messaging/exceptions.py index 10ad529806..0a4941a40f 100644 --- a/python/qpid/messaging/exceptions.py +++ b/python/qpid/messaging/exceptions.py @@ -17,7 +17,26 @@ # under the License. # -class ConnectionError(Exception): +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. """ @@ -30,7 +49,15 @@ class ConnectError(ConnectionError): """ pass -class SessionError(Exception): +class VersionError(ConnectError): + pass + +class AuthenticationFailure(ConnectError): + pass + +## Session Errors + +class SessionError(MessagingError): pass class Detached(SessionError): @@ -47,19 +74,64 @@ class NontransactionalSession(SessionError): """ pass -class TransactionAborted(SessionError): +class TransactionError(SessionError): pass -class SendError(SessionError): +class TransactionAborted(TransactionError): pass -class InsufficientCapacity(SendError): +class UnauthorizedAccess(SessionError): + pass + +class ServerError(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 + +## Sender Errors + +class SenderError(LinkError): + pass + +class SendError(SenderError): + pass + +class TargetCapacityExceeded(SendError): + pass + +## Receiver Errors + +class ReceiverError(LinkError): pass -class ReceiveError(SessionError): +class FetchError(ReceiverError): pass -class Empty(ReceiveError): +class Empty(FetchError): """ Exception raised by L{Receiver.fetch} when there is no message available within the alloted time. |