Встречается на собеседованиях • сегодня

Как происходит обработка исключений в Django

В Django обработка исключений происходит через middleware или декораторы. Основные подходы:

  1. Middleware - глобальная обработка через process_exception():
python
class CustomExceptionMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        return self.get_response(request)
text
def process_exception(self, request, exception):
    if isinstance(exception, SomeSpecificError):
        return HttpResponse("Custom error", status=400)
    return None
text

2. **Декораторы** - локальная обработка:
```python
from django.views.decorators.http import require_http_methods

@require_http_methods(["GET"])
def my_view(request):
    try:
        # код представления
    except SomeError:
        return HttpResponseBadRequest()
  1. Встроенные обработчики:
  • handler400 - Bad Request
  • handler403 - Permission Denied
  • handler404 - Page Not Found
  • handler500 - Server Error

Для кастомных страниц ошибок создаются шаблоны 400.html, 404.html и т.д. в корне шаблонов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы