"""Fachliche Fehler; die Web-Schicht übersetzt sie in HTTP-Status.""" class NotFound(Exception): """Gibt es nicht oder darf der Nutzer nicht sehen. Beides sieht von außen gleich aus (404).""" class Forbidden(Exception): """Sichtbar, aber die Rolle reicht nicht (403).""" class Invalid(ValueError): """Eingabe ungültig; die Meldung ist für den Nutzer bestimmt."""