summaryrefslogtreecommitdiff
path: root/python/qpid/messaging/exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/messaging/exceptions.py')
-rw-r--r--python/qpid/messaging/exceptions.py86
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.