Files
drf-rack/net/xeaf/rack/utils/exceptions/critical_exception.py

55 lines
1.7 KiB
Python

# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса CriticalException
"""
from typing import Any
from django.utils.translation import gettext as _
from rest_framework import status
from net.xeaf.rack.core import CoreException
class CriticalException(CoreException):
"""
Исключение, возникающее при внутренней ошибке сервера
"""
def __init__(self, detail: list | str | None = None, meta: dict | None = None, **kwargs: Any):
"""
Инициализация
:param detail: Информация об ошибке
:param meta: Информация для обработки ошибки
:param kwargs: Дополнительные параметры
"""
# Сообщение об ошибке по умолчанию
if detail is None:
detail = _(self.Msg.DEFAULT_MESSAGE)
super().__init__(status.HTTP_500_INTERNAL_SERVER_ERROR, detail, meta, **kwargs)
def is_pure_status(self) -> bool:
"""
Возвращает признак необходимости возвращать в ответе реальный статус HTTP
:return: Признак необходимости
"""
return True
class Msg:
"""
Константы сообщений
"""
DEFAULT_MESSAGE = _("rack.errors.http.internal_server_error")
""" Внутренняя ошибка сервера """