Files
bottohelp/core/exceptions.py
T

70 lines
2.2 KiB
Python

"""
Кастомные исключения для телеграм-бота.
Обеспечивают единообразную обработку ошибок во всем приложении.
"""
class BotException(Exception):
"""Базовое исключение для всех ошибок бота"""
def __init__(self, message: str, error_code: str = None):
super().__init__(message)
self.error_code = error_code
self.message = message
class DatabaseError(BotException):
"""Ошибки работы с базой данных"""
def __init__(self, message: str, original_error: Exception = None):
super().__init__(message, "DATABASE_ERROR")
self.original_error = original_error
class ValidationError(BotException):
"""Ошибки валидации данных"""
def __init__(self, message: str, field: str = None):
super().__init__(message, "VALIDATION_ERROR")
self.field = field
class ConfigurationError(BotException):
"""Ошибки конфигурации"""
def __init__(self, message: str, config_key: str = None):
super().__init__(message, "CONFIG_ERROR")
self.config_key = config_key
class APIError(BotException):
"""Ошибки внешних API"""
def __init__(self, message: str, api_name: str = None, status_code: int = None):
super().__init__(message, "API_ERROR")
self.api_name = api_name
self.status_code = status_code
class GameError(BotException):
"""Ошибки игровых механик"""
def __init__(self, message: str, game_name: str = None):
super().__init__(message, "GAME_ERROR")
self.game_name = game_name
class ModerationError(BotException):
"""Ошибки системы модерации"""
def __init__(self, message: str, action: str = None):
super().__init__(message, "MODERATION_ERROR")
self.action = action
class PermissionError(BotException):
"""Ошибки доступа и прав"""
def __init__(self, message: str, required_permission: str = None):
super().__init__(message, "PERMISSION_ERROR")
self.required_permission = required_permission