Spaces:
Runtime error
Runtime error
| """ | |
| Custom exceptions for the Schema Descriptor application. | |
| Provides a consistent error handling mechanism across the application. | |
| """ | |
| class SchemaDescriptorError(Exception): | |
| """Base exception for all application-specific errors.""" | |
| def __init__(self, message="An error occurred in the Schema Descriptor application"): | |
| self.message = message | |
| super().__init__(self.message) | |
| # Authentication errors | |
| class AuthenticationError(SchemaDescriptorError): | |
| """Raised when authentication with a service fails.""" | |
| def __init__(self, message="Authentication failed", service=None, details=None): | |
| self.service = service | |
| self.details = details | |
| error_msg = f"{message}" | |
| if service: | |
| error_msg += f" for {service}" | |
| if details: | |
| error_msg += f": {details}" | |
| super().__init__(error_msg) | |
| # BigQuery errors | |
| class BigQueryError(SchemaDescriptorError): | |
| """Raised when a BigQuery operation fails.""" | |
| def __init__(self, message="BigQuery operation failed", operation=None, details=None): | |
| self.operation = operation | |
| self.details = details | |
| error_msg = f"{message}" | |
| if operation: | |
| error_msg += f" during {operation}" | |
| if details: | |
| error_msg += f": {details}" | |
| super().__init__(error_msg) | |
| # LLM errors | |
| class LLMError(SchemaDescriptorError): | |
| """Raised when an LLM operation fails.""" | |
| def __init__(self, message="LLM operation failed", operation=None, details=None): | |
| self.operation = operation | |
| self.details = details | |
| error_msg = f"{message}" | |
| if operation: | |
| error_msg += f" during {operation}" | |
| if details: | |
| error_msg += f": {details}" | |
| super().__init__(error_msg) | |
| # Input validation errors | |
| class ValidationError(SchemaDescriptorError): | |
| """Raised when input validation fails.""" | |
| def __init__(self, message="Input validation failed", field=None, details=None): | |
| self.field = field | |
| self.details = details | |
| error_msg = f"{message}" | |
| if field: | |
| error_msg += f" for {field}" | |
| if details: | |
| error_msg += f": {details}" | |
| super().__init__(error_msg) |