"""Handle errors and raise exceptions.""" from src.utils.constants import StatementAttachmentFailureReason MISSING_TAX = StatementAttachmentFailureReason.MISSING_TAX MISSING_BANK = StatementAttachmentFailureReason.MISSING_BANK class TaxDetailsException(Exception): """Custom exception cause by the client.""" def __init__(self, message: str): """Raise a custom exception when processing messages for the lambda. Args: message (str): Error message. """ self.message = message self.failure_reason = MISSING_TAX super().__init__(message, self.failure_reason) class BankDetailsException(Exception): """Custom exception cause by the client.""" def __init__(self, message: str): """Raise a custom exception when processing messages for the lambda. Args: message (str): Error message. """ self.message = message self.failure_reason = MISSING_BANK super().__init__(message, self.failure_reason) class ClientException(Exception): """Custom exception cause by the client.""" class LambdaException(Exception): """Custom exception for errors during lambda execution.""" def __init__(self, message: str): """Raise a custom exception when processing messages for the lambda. Args: message (str): Error message. """ self.message = message class OwsServiceException(Exception): """Custom exception when making ows service requests.""" def __init__(self, message: str, status_code: int): """Construct the object. Args: message (str): Error message status_code (int): Status code """ self.message = message self.status_code = status_code super().__init__(message, status_code)