Я пишу пользовательский java SQS Poller для чтения из Amazon SQS и выполнения некоторых операций с сообщениями. Это многопоточное приложение, которое порождает фиксированный пул потоков, и каждый поток будет слушать SQS.
Теперь у меня есть сомнения в одном из аспектов реализации, что, скажем, при получении или удалении сообщений из SQS я получил какое-то исключение, должен ли я выбросить исключение и выйти из этого потока оттуда? Или я должен просто перехватить исключение, не выбрасывая его, и повторить попытку получения сообщения снова? Во втором случае, чтобы знать, что он не работает должным образом, я, вероятно, опубликую некоторые метрики, по которым я мог бы создать сигнал тревоги, чтобы я узнал, часто ли это происходит.
Каким образом предлагается рекомендуемая или лучшая практика?