LINUX.ORG.RU

Про обработку ошибок


1

2

Предположим что есть программа, которая состоят из независимых объектов, каждый из которых работает в своём собственном, независимом потоке исполнения, общаются они между собой через MQ.

Вопрос, как в таких случаях обеспечивают обработку ошибок? Как организуют обработчики по умолчанию, каскадирование ошибки, детектирование в вышестоящем коде (если во всём этом есть необходимость)?



Последнее исправление: dmitryalexeeff (всего исправлений: 2)

За MQ не скажу, а для сокетов я делал проброс исключений с сервера на клиент. Т.е. клиент послал запрос, на сервере что то гавкнулось, отчет об исключении (вместе с описанием соотв. куска серверного стека) возвращается клиенту и исключение возбуждается уже на клиенте. Очень удобно, работаешь почти с как не-распределенной системой.

AIv ★★★★★
()

Можно завести одну очередь специально для ошибок, доступную каждому компоненту. В случае исключения необработанное сообщение (можно вместе с контекстом) перенаправляется туда. Впоследствии какой-нибудь error handler может просмотреть эту очередь и обработать её содержимое (в том числе пересылая сообщения на повторную обработку компонентам).

CARS ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.