entaxy-public/documentation/core/exception/Error-description.adoc

32 lines
2.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

= Использование обработчика ошибок
Для централизованной обработки ошибок будем использовать “процессор” зарегистрированный через _<camelContext errorHandlerRef="...”>_. В частных случаях допустимо использование _try …​ catch …​ finally_.
_(https://camel.apache.org/manual/latest/error-handler.html)_
Кроме возврата ошибок вызывающей стороне, необходимо дублировать ошибки в JMS очередь с возможностью их просмотра из веб-консоли Артемиса.
=== Классификация ошибок
_Бизнесовые ошибки:_ отсутствие обязательных полей, превышение длины поля и другие нарушения ожиданий принимающей стороны.
_Серверные ошибки:_ NPE и другие ошибки времени выполнения.
_Сервис не доступен:_ конечная точка не отвечает и не принимает входящие соединения.
При этом ошибки могут быть “восстанавливаемыми” - с возможностью успешной обработки повторного запроса, использующего изменённые данные или другие точки доступа, и “не восстанавливаемыми” - у клиента нет возможности обойти причины ошибки для выбранного сервиса.
=== Обёртка для ошибок
Ошибки удобно обрабатывать используя дополнительную информацию, которую необходимо передавать вместе с ошибкой:
* _Timestamp_: время возникновения ошибки;
* _Error Code_: код ошибки для удобства автоматизированной обработки ошибок;
* _Error Text_: описание возникающей ошибки, допустимо выводить вместе со стектрейсом;
* _Severity Level_: уровень журналирования ошибки;
* _Notification_: в случае необходимости уведомлений об ошибке поле должно содержать адрес или список адресов систем/пользователей для оповещения;
* _Retry_: информация о возможности повторной отправки сообщения;
_Uuid_ и _id_ сообщения