Exceptions

Application exception classes and error handling.

Module Contents

Site-wide exception handlers with HTMX-aware flash message support.

not_found_exception_handler(request, exc)[source]

Handle 404 Not Found exceptions site-wide.

For API requests: Returns JSON error response. For HTMX requests: Returns empty response with HX-Trigger for toast notification. For regular requests: Renders the 404 error template with 5-minute cache.

Parameters:
Return type:

Response | Template

Returns:

JSON response, HTMX toast response, or rendered error template

http_exception_handler(request, exc)[source]

Handle generic HTTP exceptions site-wide.

For API requests: Returns JSON error response. For HTMX requests: Returns toast notification. For browser requests: Returns HTML template or redirect.

Parameters:
  • request (Request) – The incoming request

  • exc (HTTPException) – The HTTPException that was raised

Return type:

Response | Template | Redirect

Returns:

Appropriate response based on request type and exception

permission_denied_handler(request, exc)[source]

Handle permission denied exceptions.

For API requests: Returns JSON error response. For HTMX requests: Returns toast notification. For browser requests: Returns 403 template.

Parameters:
Return type:

Response | Template

Returns:

JSON response, HTMX toast response, or rendered 403 template

internal_server_error_handler(request, exc)[source]

Handle internal server errors.

For API requests: Returns JSON error response. For HTMX requests: Returns toast notification. For browser requests: Returns 500 template.

Parameters:
Return type:

Response | Template

Returns:

JSON response, HTMX toast response, or rendered 500 template

get_exception_handlers()[source]

Get all site-wide exception handlers.

Return type:

dict

Returns:

Dictionary mapping exception types to their handlers

Exception Hierarchy

The exception hierarchy provides structured error handling:

  • ApplicationError - Base exception for all application errors

  • AuthenticationError - Authentication failures

  • AuthorizationError - Authorization/permission failures

  • NotFoundError - Resource not found errors

  • ValidationError - Input validation errors

  • ConflictError - Resource conflict errors