EN · DE · RU · FR · ES

#2782: EventNotFoundException.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventNotFoundException.java Исключение Java (домен FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/EventNotFoundException.java 44 строки · 6 кода · 33 комментария · 5 пустых
Типизированное исключение времени выполнения, выбрасываемое, когда EventManager не может найти событие календаря по его идентификатору. Расширяет RuntimeException (непроверяемое) с единственным конструктором, принимающим сообщение об ошибке. Это исключение является частью словаря доменных исключений модуля FullCalendar — оно позволяет вызывающим объектам выше в стеке обработки обратных вызовов Wicket различать «событие не найдено», «источник событий не найден» и инфраструктурные сбои, а также обрабатывать каждый случай соответствующим образом (обычно отправляя команду отмены клиенту).

Архитектура

Почему RuntimeException?

Исключение расширяет RuntimeException, а не проверяемое исключение, поскольку оно обычно выбрасывается из обработчиков обратных вызовов Ajax в Wicket, где проверяемые исключения усложнили бы контракт обратного вызова. Ajax-фреймворк Wicket уже имеет обработку исключений на уровне поведения — непроверяемое исключение естественным образом распространяется по цепочке обратных вызовов и может быть перехвачено универсальным обработчиком ошибок, который отправляет ответ об ошибке клиенту.

Связь с EventSourceNotFoundException

Вместе с EventSourceNotFoundException (файл #2785) это образует двухуровневую иерархию исключений для цепочки поиска. Исключение источника срабатывает, когда UUID не соответствует ни одному зарегистрированному источнику; исключение события срабатывает, когда источник существует, но не содержит указанного события. Вызывающие объекты могут перехватывать исключение источника для обработки сценариев отсутствия источника (например, источник был удалён между рендерингом и обратным вызовом) отдельно от сценариев отсутствия события (например, событие было удалено другим пользователем).

История Git

КоммитЧто изменилось
868d6abb7ceb63e8a1 Шесть ежегодных обновлений заголовков авторских прав. Класс исключения никогда не изменялся после первоначального создания — его минимальный дизайн (конструктор, принимающий строку сообщения, без дополнительных полей) достаточен для всех сценариев сбоя поиска.