Я был удивлен тем, как трудно найти лучшие практики для этого в Интернете, поскольку это должна быть такая общая проблема.Руководство по управлению исключениями в веб-приложении Java EE 5
Приложение основано на Java 1.5 - JSF 1.2 с Faclets, Seam, JPA, Hibernate. Некоторые вызовы веб-службы. Некоторые JMS.
Я получаю общие рекомендации по обработке исключений. Есть примерно три подхода, которые я видел, но я никогда не был уверен, какой из них лучше. Предполагая, что вы не можете восстановиться после ошибки, выполните следующие действия: 1) Запишите ошибку при ее возникновении и повторите бросок?
2) Зарегистрируйтесь, когда это произойдет, и бросьте какое-то общее исключение?
3) Пусть он пузырится, а затем обрабатывает его в универсальном сервлере обработки исключений или аналогичном.
Я использовал вариант 2 в предыдущих системах, где архитектура была довольно простой - переходный слой, разговаривающий с различными сторонними системами, генерирует исключения и исключение адаптера, если он получает ошибку и так далее. Мы можем отобразить хорошее чистое сообщение пользователю на экране и сохранить данные в журнале. Здесь, хотя архитектура намного сложнее, и мне интересно, насколько она будет работать на практике. Поэтому мне интересно узнать, что вы предпочитаете и почему.
Спасибо за ваш ответ. У кого-нибудь есть другие мнения по этому поводу? – charles
@charles Довольно удивительно видеть только один ответ здесь, я ожидал много из них. –
Да, я удивлен. Это хороший answeer, хотя, возможно, мы отложили всех! На самом деле метод, который я вижу чаще всего, когда я делаю ревизии кода, - это 3: пусть он пузырится, а затем обрабатывает его в универсальном сервлет-обработчике исключений или аналогичном - хотя он, вероятно, не подходит к лучшей практике. – charles