EN · DE · RU · FR · ES

#2782: EventNotFoundException.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventNotFoundException.java Java-Ausnahme (FullCalendar-Domäne) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventNotFoundException.java 44 Zeilen · 6 Code · 33 Kommentare · 5 leer
Eine typisierte Laufzeitausnahme, die ausgelöst wird, wenn EventManager ein Kalenderereignis anhand seiner ID nicht finden kann. Erweitert RuntimeException (ungeprüft) mit einem einzelnen Konstruktor, der eine Fehlermeldung akzeptiert. Diese Ausnahme ist Teil des Domänen-Ausnahmevokabulars des FullCalendar-Moduls – sie ermöglicht es Aufrufern weiter oben im Wicket-Callback-Behandlungsstapel, zwischen „Ereignis nicht gefunden“ und „Ereignisquelle nicht gefunden“ sowie Infrastrukturfehlern zu unterscheiden und jeden Fall angemessen zu behandeln (typischerweise durch Senden eines Rückgängig-Befehls an den Client).

Architektur

Warum RuntimeException?

Die Ausnahme erweitert RuntimeException anstelle einer geprüften Ausnahme, da sie typischerweise innerhalb von Wicket-Ajax-Callback-Handlern ausgelöst wird, wo geprüfte Ausnahmen den Callback-Vertrag verkomplizieren würden. Das Ajax-Framework von Wicket verfügt bereits über eine Ausnahmebehandlung auf Verhaltensebene – eine ungeprüfte Ausnahme breitet sich auf natürliche Weise durch die Callback-Kette aus und kann von einem generischen Fehlerhandler abgefangen werden, der eine Fehlerantwort an den Client sendet.

Beziehung zu EventSourceNotFoundException

Zusammen mit EventSourceNotFoundException (Datei #2785) bildet dies eine zweistufige Ausnahmehierarchie für die Nachschlagekette. Die Quellenausnahme wird ausgelöst, wenn eine UUID mit keiner registrierten Quelle übereinstimmt; die Ereignisausnahme wird ausgelöst, wenn die Quelle existiert, aber das angegebene Ereignis nicht enthält. Aufrufer können die Quellenausnahme abfangen, um Szenarien mit fehlender Quelle (z. B. die Quelle wurde zwischen Rendering und Callback entfernt) getrennt von Szenarien mit fehlendem Ereignis (z. B. das Ereignis wurde von einem anderen Benutzer gelöscht) zu behandeln.

Git-Verlauf

CommitWas geändert wurde
868d6abb7 bis ceb63e8a1Sechs jährliche Aktualisierungen der Copyright-Header. Die Ausnahmeklasse wurde seit ihrer ursprünglichen Erstellung nie geändert – ihr minimales Design (Konstruktor, der eine Nachrichtenzeichenkette akzeptiert, keine zusätzlichen Felder) ist für alle Nachschlagefehlerszenarien ausreichend.