"""Custom exceptions for FlowODM."""
[docs]
class FlowODMError(Exception):
"""Base exception for all FlowODM errors."""
pass
[docs]
class ConnectionError(FlowODMError):
"""Raised when connection to Kafka or Schema Registry fails."""
pass
[docs]
class ConfigurationError(FlowODMError):
"""Raised when configuration is invalid or missing."""
pass
[docs]
class SchemaError(FlowODMError):
"""Base exception for schema-related errors."""
pass
[docs]
class SchemaValidationError(SchemaError):
"""Raised when schema validation fails."""
[docs]
def __init__(self, message: str, errors: list[str] | None = None):
super().__init__(message)
self.errors = errors or []
[docs]
class SchemaRegistryError(SchemaError):
"""Raised when Schema Registry operations fail."""
pass
[docs]
class SchemaCompatibilityError(SchemaError):
"""Raised when schema compatibility check fails."""
[docs]
def __init__(self, message: str, compatibility_level: str | None = None):
super().__init__(message)
self.compatibility_level = compatibility_level
[docs]
class SerializationError(FlowODMError):
"""Raised when message serialization fails."""
pass
[docs]
class DeserializationError(FlowODMError):
"""Raised when message deserialization fails."""
pass
[docs]
class ProducerError(FlowODMError):
"""Raised when message production fails."""
pass
[docs]
class ConsumerError(FlowODMError):
"""Raised when message consumption fails."""
pass
[docs]
class TopicError(FlowODMError):
"""Raised when topic-related operations fail."""
pass
[docs]
class SettingsError(FlowODMError):
"""Raised when model Settings class is invalid or missing."""
pass