Exceptions¶
exceptions
¶
Pika specific exceptions.
AMQPChannelError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class AMQPChannelError(AMQPError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {self.args!r}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {self.args!r}'
AMQPConnectionError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class AMQPConnectionError(AMQPError):
@override
def __init__(self,
*args,
host: str | None = None,
port: int | None = None) -> None:
super().__init__(*args)
self.host = host
self.port = port
def _host_port_suffix(self) -> str:
"""Return a ` (host=..., port=...)` repr suffix, or '' when unset."""
if self.host is not None:
return f' (host={self.host!r}, port={self.port})'
return ''
@override
def __repr__(self) -> str:
if len(self.args) == 2:
base = f'{self.__class__.__name__}: ({self.args[0]}) {self.args[1]}'
else:
base = f'{self.__class__.__name__}: {self.args}'
return f'{base}{self._host_port_suffix()}'
__init__
¶
__init__(
*args, host: str | None = None, port: int | None = None
) -> None
Source code in pika/exceptions.py
@override
def __init__(self,
*args,
host: str | None = None,
port: int | None = None) -> None:
super().__init__(*args)
self.host = host
self.port = port
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
if len(self.args) == 2:
base = f'{self.__class__.__name__}: ({self.args[0]}) {self.args[1]}'
else:
base = f'{self.__class__.__name__}: {self.args}'
return f'{base}{self._host_port_suffix()}'
AMQPError
¶
Bases: Exception
Source code in pika/exceptions.py
class AMQPError(Exception):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified AMQP error has occurred; {self.args}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified AMQP error has occurred; {self.args}'
AMQPHeartbeatTimeout
¶
Bases: AMQPConnectionError
Connection was dropped as result of heartbeat timeout.
Source code in pika/exceptions.py
class AMQPHeartbeatTimeout(AMQPConnectionError):
"""Connection was dropped as result of heartbeat timeout."""
AuthenticationError
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class AuthenticationError(AMQPConnectionError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Server and client could not negotiate use of the {self.args[0]} '
f'authentication mechanism{self._host_port_suffix()}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Server and client could not negotiate use of the {self.args[0]} '
f'authentication mechanism{self._host_port_suffix()}')
BodyTooLongError
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class BodyTooLongError(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Received too many bytes for a message delivery: '
f'Received {self.args[0]}, expected {self.args[1]}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Received too many bytes for a message delivery: '
f'Received {self.args[0]}, expected {self.args[1]}')
ChannelClosed
¶
Bases: AMQPChannelError
The channel closed by client or by broker.
Source code in pika/exceptions.py
class ChannelClosed(AMQPChannelError):
"""The channel closed by client or by broker."""
def __init__(self, reply_code: int, reply_text: str) -> None:
"""
:param reply_code: reply-code that was used in user's or broker's
`Channel.Close` method. One of the AMQP-defined Channel Errors.
NEW in v1.0.0
:param reply_text: reply-text that was used in user's or broker's
`Channel.Close` method. Human-readable string corresponding to
`reply_code`;
NEW in v1.0.0
"""
super().__init__(int(reply_code), str(reply_text))
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: ({self.reply_code}) {self.reply_text!r}'
@property
def reply_code(self) -> int:
"""NEW in v1.0.0."""
return self.args[0]
@property
def reply_text(self) -> str:
"""NEW in v1.0.0."""
return self.args[1]
__init__
¶
__init__(reply_code: int, reply_text: str) -> None
| PARAMETER | DESCRIPTION |
|---|---|
reply_code
|
reply-code that was used in user's or broker's
TYPE:
|
reply_text
|
reply-text that was used in user's or broker's
TYPE:
|
Source code in pika/exceptions.py
def __init__(self, reply_code: int, reply_text: str) -> None:
"""
:param reply_code: reply-code that was used in user's or broker's
`Channel.Close` method. One of the AMQP-defined Channel Errors.
NEW in v1.0.0
:param reply_text: reply-text that was used in user's or broker's
`Channel.Close` method. Human-readable string corresponding to
`reply_code`;
NEW in v1.0.0
"""
super().__init__(int(reply_code), str(reply_text))
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: ({self.reply_code}) {self.reply_text!r}'
ChannelClosedByBroker
¶
Bases: ChannelClosed
Channel.Close from broker; may be passed as reason to channel's on-closed callback of non-
blocking connection adapters or raised by BlockingConnection.
NEW in v1.0.0
Source code in pika/exceptions.py
class ChannelClosedByBroker(ChannelClosed):
"""
`Channel.Close` from broker; may be passed as reason to channel's on-closed callback of non-
blocking connection adapters or raised by `BlockingConnection`.
NEW in v1.0.0
"""
ChannelClosedByClient
¶
Bases: ChannelClosed
Channel closed by client upon receipt of Channel.CloseOk; may be passed as reason to channel's
on-closed callback of non-blocking connection adapters, but not raised by BlockingConnection.
NEW in v1.0.0
Source code in pika/exceptions.py
class ChannelClosedByClient(ChannelClosed):
"""
Channel closed by client upon receipt of `Channel.CloseOk`; may be passed as reason to channel's
on-closed callback of non-blocking connection adapters, but not raised by `BlockingConnection`.
NEW in v1.0.0
"""
ChannelError
¶
Bases: Exception
Source code in pika/exceptions.py
class ChannelError(Exception):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified error occurred with the Channel'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified error occurred with the Channel'
ChannelWrongStateError
¶
Bases: AMQPChannelError
Channel is in wrong state for the requested operation.
Source code in pika/exceptions.py
class ChannelWrongStateError(AMQPChannelError):
"""Channel is in wrong state for the requested operation."""
ConnectionBlockedTimeout
¶
Bases: AMQPConnectionError
RabbitMQ-specific: timed out waiting for connection.unblocked.
Source code in pika/exceptions.py
class ConnectionBlockedTimeout(AMQPConnectionError):
"""RabbitMQ-specific: timed out waiting for connection.unblocked."""
ConnectionClosed
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class ConnectionClosed(AMQPConnectionError):
def __init__(self,
reply_code: int,
reply_text: str | bytes,
host: str | None = None,
port: int | None = None) -> None:
"""
:param reply_code: reply-code that was used in user's or broker's
`Connection.Close` method. NEW in v1.0.0
:param reply_text: reply-text that was used in user's or broker's
`Connection.Close` method. Human-readable string corresponding to
`reply_code`. A broker may send text that is not valid UTF-8, in
which case it arrives as bytes and undecodable characters are
replaced. NEW in v1.0.0
:param host: hostname or IP of the broker
:param port: port of the broker
"""
if isinstance(reply_text, bytes):
# `str(bytes)` would yield the repr, b-prefix and escapes
# included, mangling the very text needed to diagnose the close.
reply_text = reply_text.decode('utf-8', errors='replace')
super().__init__(int(reply_code), str(reply_text), host=host, port=port)
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: ({self.reply_code}) {self.reply_text!r}'
f'{self._host_port_suffix()}')
@property
def reply_code(self) -> int:
"""NEW in v1.0.0."""
return self.args[0]
@property
def reply_text(self) -> str:
"""NEW in v1.0.0."""
return self.args[1]
__init__
¶
__init__(
reply_code: int,
reply_text: str | bytes,
host: str | None = None,
port: int | None = None,
) -> None
| PARAMETER | DESCRIPTION |
|---|---|
reply_code
|
reply-code that was used in user's or broker's
TYPE:
|
reply_text
|
reply-text that was used in user's or broker's
TYPE:
|
host
|
hostname or IP of the broker
TYPE:
|
port
|
port of the broker
TYPE:
|
Source code in pika/exceptions.py
def __init__(self,
reply_code: int,
reply_text: str | bytes,
host: str | None = None,
port: int | None = None) -> None:
"""
:param reply_code: reply-code that was used in user's or broker's
`Connection.Close` method. NEW in v1.0.0
:param reply_text: reply-text that was used in user's or broker's
`Connection.Close` method. Human-readable string corresponding to
`reply_code`. A broker may send text that is not valid UTF-8, in
which case it arrives as bytes and undecodable characters are
replaced. NEW in v1.0.0
:param host: hostname or IP of the broker
:param port: port of the broker
"""
if isinstance(reply_text, bytes):
# `str(bytes)` would yield the repr, b-prefix and escapes
# included, mangling the very text needed to diagnose the close.
reply_text = reply_text.decode('utf-8', errors='replace')
super().__init__(int(reply_code), str(reply_text), host=host, port=port)
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: ({self.reply_code}) {self.reply_text!r}'
f'{self._host_port_suffix()}')
ConnectionClosedByBroker
¶
Bases: ConnectionClosed
Connection.Close from broker.
Source code in pika/exceptions.py
class ConnectionClosedByBroker(ConnectionClosed):
"""Connection.Close from broker."""
ConnectionClosedByClient
¶
Bases: ConnectionClosed
Connection was closed at request of Pika client.
Source code in pika/exceptions.py
class ConnectionClosedByClient(ConnectionClosed):
"""Connection was closed at request of Pika client."""
ConnectionOpenAborted
¶
Bases: AMQPConnectionError
Client closed connection while opening.
Source code in pika/exceptions.py
class ConnectionOpenAborted(AMQPConnectionError):
"""Client closed connection while opening."""
ConnectionWrongStateError
¶
Bases: AMQPConnectionError
Connection is in wrong state for the requested operation.
Source code in pika/exceptions.py
class ConnectionWrongStateError(AMQPConnectionError):
"""Connection is in wrong state for the requested operation."""
@override
def __repr__(self) -> str:
if self.args:
return super().__repr__()
return (
f'{self.__class__.__name__}: The connection is in wrong state for the requested '
f'operation.{self._host_port_suffix()}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
if self.args:
return super().__repr__()
return (
f'{self.__class__.__name__}: The connection is in wrong state for the requested '
f'operation.{self._host_port_suffix()}')
ConsumerCancelled
¶
Bases: AMQPChannelError
Source code in pika/exceptions.py
class ConsumerCancelled(AMQPChannelError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Server cancelled consumer'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Server cancelled consumer'
DuplicateConsumerTag
¶
Bases: AMQPChannelError
Source code in pika/exceptions.py
class DuplicateConsumerTag(AMQPChannelError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The consumer tag specified already exists for this '
f'channel: {self.args[0]}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The consumer tag specified already exists for this '
f'channel: {self.args[0]}')
DuplicateGetOkCallback
¶
Bases: ChannelError
Source code in pika/exceptions.py
class DuplicateGetOkCallback(ChannelError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: basic_get can only be called again after the callback for '
'the previous basic_get is executed')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: basic_get can only be called again after the callback for '
'the previous basic_get is executed')
IncompatibleProtocolError
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class IncompatibleProtocolError(AMQPConnectionError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The protocol returned by the server is not supported: {self.args}'
f'{self._host_port_suffix()}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The protocol returned by the server is not supported: {self.args}'
f'{self._host_port_suffix()}')
InvalidChannelNumber
¶
Bases: AMQPError
Source code in pika/exceptions.py
class InvalidChannelNumber(AMQPError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An invalid channel number has been specified: {self.args[0]}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An invalid channel number has been specified: {self.args[0]}'
InvalidFieldTypeException
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class InvalidFieldTypeException(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Unsupported field kind {self.args[0]}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Unsupported field kind {self.args[0]}'
InvalidFrameError
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class InvalidFrameError(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Invalid frame received: {self.args[0]!r}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Invalid frame received: {self.args[0]!r}'
MethodNotImplemented
¶
NackError
¶
Bases: AMQPChannelError
This exception is raised when a message published in publisher-acknowledgements mode is Nack'ed by the broker.
Used by BlockingChannel.
Source code in pika/exceptions.py
class NackError(AMQPChannelError):
"""
This exception is raised when a message published in publisher-acknowledgements mode is Nack'ed
by the broker.
Used by BlockingChannel.
"""
def __init__(self, messages: Sequence[ReturnedMessageLike]) -> None:
"""
:param messages: Sequence of returned unroutable messages
"""
super().__init__(f'{len(messages)} message(s) NACKed')
# See the note in `UnroutableError.__init__`.
self.messages: Sequence[Any] = messages
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {len(self.messages)} unroutable messages returned by broker'
__init__
¶
__init__(messages: Sequence[ReturnedMessageLike]) -> None
| PARAMETER | DESCRIPTION |
|---|---|
messages
|
Sequence of returned unroutable messages
TYPE:
|
Source code in pika/exceptions.py
def __init__(self, messages: Sequence[ReturnedMessageLike]) -> None:
"""
:param messages: Sequence of returned unroutable messages
"""
super().__init__(f'{len(messages)} message(s) NACKed')
# See the note in `UnroutableError.__init__`.
self.messages: Sequence[Any] = messages
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {len(self.messages)} unroutable messages returned by broker'
NoFreeChannels
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class NoFreeChannels(AMQPConnectionError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The connection has run out of free channels'
f'{self._host_port_suffix()}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: The connection has run out of free channels'
f'{self._host_port_suffix()}')
ProbableAccessDeniedError
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class ProbableAccessDeniedError(AMQPConnectionError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Client was disconnected at a connection stage indicating a '
f'probable denial of access to the specified virtual host: {self.args}'
f'{self._host_port_suffix()}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Client was disconnected at a connection stage indicating a '
f'probable denial of access to the specified virtual host: {self.args}'
f'{self._host_port_suffix()}')
ProbableAuthenticationError
¶
Bases: AMQPConnectionError
Source code in pika/exceptions.py
class ProbableAuthenticationError(AMQPConnectionError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Client was disconnected at a connection stage indicating a '
f'probable authentication error: {self.args}{self._host_port_suffix()}'
)
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: Client was disconnected at a connection stage indicating a '
f'probable authentication error: {self.args}{self._host_port_suffix()}'
)
ProtocolSyntaxError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class ProtocolSyntaxError(AMQPError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified protocol syntax error occurred'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: An unspecified protocol syntax error occurred'
ProtocolVersionMismatch
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class ProtocolVersionMismatch(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Protocol versions did not match: {self.args[0]!r} vs {self.args[1]!r}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Protocol versions did not match: {self.args[0]!r} vs {self.args[1]!r}'
ReentrancyError
¶
Bases: Exception
The requested operation would result in unsupported recursion or reentrancy.
Used by BlockingConnection/BlockingChannel
Source code in pika/exceptions.py
class ReentrancyError(Exception):
"""
The requested operation would result in unsupported recursion or reentrancy.
Used by BlockingConnection/BlockingChannel
"""
ReturnedMessageLike
¶
Bases: Protocol
Structural type for a message returned by the broker via Basic.Return.
Describes what a reader of UnroutableError.messages or NackError.messages can rely on.
Two unrelated classes carry these messages: blocking_connection.ReturnedMessage and
twisted_connection.ReceivedMessage, which adds a channel field. Neither can be named
here without an import cycle, so the exceptions accept either shape.
The exceptions themselves read only len(messages); the members below are what their
callers go on to use.
The members are read-only because ReceivedMessage is a namedtuple.
Declared under TYPE_CHECKING, so it is available to annotations but not importable at
runtime. Import it inside a TYPE_CHECKING block, which from __future__ import
annotations or a quoted annotation makes usable.
Source code in pika/exceptions.py
class ReturnedMessageLike(Protocol):
"""
Structural type for a message returned by the broker via Basic.Return.
Describes what a reader of `UnroutableError.messages` or `NackError.messages` can rely on.
Two unrelated classes carry these messages: `blocking_connection.ReturnedMessage` and
`twisted_connection.ReceivedMessage`, which adds a `channel` field. Neither can be named
here without an import cycle, so the exceptions accept either shape.
The exceptions themselves read only `len(messages)`; the members below are what their
callers go on to use.
The members are read-only because `ReceivedMessage` is a `namedtuple`.
Declared under `TYPE_CHECKING`, so it is available to annotations but not importable at
runtime. Import it inside a `TYPE_CHECKING` block, which `from __future__ import
annotations` or a quoted annotation makes usable.
"""
@property
def method(self) -> spec.Basic.Return:
...
@property
def properties(self) -> spec.BasicProperties:
...
@property
def body(self) -> bytes:
...
ShortStringTooLong
¶
Bases: AMQPError
Source code in pika/exceptions.py
class ShortStringTooLong(AMQPError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: AMQP Short String can contain up to 255 bytes: '
f'{self.args[0]!s:.300}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: AMQP Short String can contain up to 255 bytes: '
f'{self.args[0]!s:.300}')
StreamLostError
¶
Bases: AMQPConnectionError
Stream (TCP) connection lost.
Source code in pika/exceptions.py
class StreamLostError(AMQPConnectionError):
"""Stream (TCP) connection lost."""
UnencodableDecimalError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class UnencodableDecimalError(AMQPError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: decimal.Decimal value has no AMQP decimal '
f'representation: {self.args[0]!s:.300}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: decimal.Decimal value has no AMQP decimal '
f'representation: {self.args[0]!s:.300}')
UnencodableLongError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class UnencodableLongError(AMQPError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: integer value has no AMQP field-table '
f'representation (outside signed 64-bit): {self.args[0]!s:.300}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: integer value has no AMQP field-table '
f'representation (outside signed 64-bit): {self.args[0]!s:.300}')
UnencodableTimestampError
¶
Bases: AMQPError
Source code in pika/exceptions.py
class UnencodableTimestampError(AMQPError):
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: datetime value has no AMQP timestamp '
f'representation (before the Unix epoch): {self.args[0]!s:.300}')
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return (
f'{self.__class__.__name__}: datetime value has no AMQP timestamp '
f'representation (before the Unix epoch): {self.args[0]!s:.300}')
UnexpectedFrameError
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class UnexpectedFrameError(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Received a frame out of sequence: {self.args[0]!r}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Received a frame out of sequence: {self.args[0]!r}'
UnroutableError
¶
Bases: AMQPChannelError
Exception containing one or more unroutable messages returned by broker via Basic.Return.
Used by BlockingChannel.
In publisher-acknowledgements mode, this is raised upon receipt of Basic.Ack from broker; in the
event of Basic.Nack from broker, NackError is raised instead
Source code in pika/exceptions.py
class UnroutableError(AMQPChannelError):
"""
Exception containing one or more unroutable messages returned by broker via Basic.Return.
Used by BlockingChannel.
In publisher-acknowledgements mode, this is raised upon receipt of Basic.Ack from broker; in the
event of Basic.Nack from broker, `NackError` is raised instead
"""
def __init__(self, messages: Sequence[ReturnedMessageLike]) -> None:
"""
:param messages: Sequence of returned unroutable messages
"""
super().__init__(f'{len(messages)} unroutable message(s) returned')
# `Sequence[Any]` rather than the protocol so that existing code
# annotating these against the concrete `ReturnedMessage` keeps checking.
# A protocol is not assignable to the nominal class it describes.
self.messages: Sequence[Any] = messages
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {len(self.messages)} unroutable messages returned by broker'
__init__
¶
__init__(messages: Sequence[ReturnedMessageLike]) -> None
| PARAMETER | DESCRIPTION |
|---|---|
messages
|
Sequence of returned unroutable messages
TYPE:
|
Source code in pika/exceptions.py
def __init__(self, messages: Sequence[ReturnedMessageLike]) -> None:
"""
:param messages: Sequence of returned unroutable messages
"""
super().__init__(f'{len(messages)} unroutable message(s) returned')
# `Sequence[Any]` rather than the protocol so that existing code
# annotating these against the concrete `ReturnedMessage` keeps checking.
# A protocol is not assignable to the nominal class it describes.
self.messages: Sequence[Any] = messages
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: {len(self.messages)} unroutable messages returned by broker'
UnsupportedAMQPFieldException
¶
Bases: ProtocolSyntaxError
Source code in pika/exceptions.py
class UnsupportedAMQPFieldException(ProtocolSyntaxError):
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Unsupported field kind {type(self.args[1])}'
__repr__
¶
__repr__() -> str
Source code in pika/exceptions.py
@override
def __repr__(self) -> str:
return f'{self.__class__.__name__}: Unsupported field kind {type(self.args[1])}'
WorkQueueFullError
¶
Bases: AMQPConnectionError
The work queue stayed full for longer than the configured work_queue_put_timeout.
Used by Connection/Channel. Subclasses :class:AMQPConnectionError because an overflow tears
the connection down, so applications catching connection loss by base class see it too.
Source code in pika/exceptions.py
class WorkQueueFullError(AMQPConnectionError):
"""
The work queue stayed full for longer than the configured ``work_queue_put_timeout``.
Used by Connection/Channel. Subclasses :class:`AMQPConnectionError` because an overflow tears
the connection down, so applications catching connection loss by base class see it too.
"""