diff --git a/LCS/Messaging/python/messaging/exceptions.py b/LCS/Messaging/python/messaging/exceptions.py index 52e023d2145e5775f05296c9a1cef9b48b67654c..003324cc41f1c4ca58597ceb4a02cdc9daee0e96 100644 --- a/LCS/Messaging/python/messaging/exceptions.py +++ b/LCS/Messaging/python/messaging/exceptions.py @@ -65,3 +65,15 @@ class MessagingTimeoutError(MessagingError, TimeoutError): """ pass + +class MessageHandlerError(MessagingError): + """ + raised upon handling a message + """ + pass + +class MessageHandlerUnknownSubjectError(MessageHandlerError): + """ + raised upon handling a message with an unknown subject + """ + pass diff --git a/LCS/Messaging/python/messaging/messagebus.py b/LCS/Messaging/python/messaging/messagebus.py index 734e5db18de0c723d4ba47c4b9542f827a5e6558..66feb5bad871544098d302401a75b8be9fb11691 100644 --- a/LCS/Messaging/python/messaging/messagebus.py +++ b/LCS/Messaging/python/messaging/messagebus.py @@ -1570,6 +1570,9 @@ class BusListener: if isinstance(e, TimeoutError): logger.error("Handling of %s timed out: %s", lofar_msg, e) receiver.reject(lofar_msg, requeue=True) + elif isinstance(e, MessageHandlerError): + logger.error("Could not handle message %s: %s", lofar_msg, e) + receiver.reject(lofar_msg, requeue=False) else: logger.exception("Handling of %s failed. Rejecting message. Error: %s", lofar_msg, e) receiver.reject(lofar_msg, requeue=False)