Files
gatehouse-api/gatehouse_app/exceptions/base.py
T

33 lines
942 B
Python
Raw Normal View History

2026-01-08 01:00:26 +10:30
"""Base exception classes."""
class BaseAPIException(Exception):
"""Base exception for all API errors."""
status_code = 500
error_type = "INTERNAL_ERROR"
message = "An unexpected error occurred"
def __init__(self, message=None, error_details=None):
"""
Initialize exception.
Args:
message: Custom error message
error_details: Additional error details dictionary
"""
super().__init__(self.message)
2026-01-08 01:00:26 +10:30
if message:
self.message = message
super().__init__(message) # update args so str(e) works
2026-01-08 01:00:26 +10:30
self.error_details = error_details or {}
def to_dict(self):
"""Convert exception to dictionary for API response."""
return {
"error_type": self.error_type,
"message": self.message,
"details": self.error_details,
"status_code": self.status_code,
}