1: Где можно обнаружить исключения SQLE?
В классах DAO на уровне доступа к данным. При необходимости вы можете заключить его в специальное исключение DAO. Это исключение DAO, в свою очередь, требует дальнейшей обработки как проверенное исключение.
2: Где должны регистрироваться исключения?
В тот момент, когда вы собираетесь throw
их или пройти через систему обмена сообщениями.
3: должны ли регистрироваться непроверенные исключения?
Они обязательно должны быть зарегистрированы. Именно они должны , а не встречаться в реальном мире, потому что они являются признаком ошибки в логике кода (то есть ошибки разработчика), которая должна быть исправлена как можно скорее. Они должны быть выброшены до самого контейнера и позволить контейнеру обрабатывать их с <error-page>
in web.xml
. Чтобы зарегистрировать (и в конечном итоге отправить их по почте), используйте Filter
, который прослушивает страницу ошибки.
4: Должны ли непроверенные исключения обнаруживаться на уровне представления и показываться ли они пользователю?
Они вообще не должны появляться.
5: Как обрабатываются проверенные исключения, какие из них показывать пользователю и как?
Если они являются результатом ошибочного ввода данных пользователем (например, не числа, плохого адреса электронной почты, нарушения ограничений и т. Д.), Покажите их в той же форме пользователю. В противном случае (например, отключение БД, исключение DAO и т. Д.) Либо перебросьте его до страницы ошибки, либо отобразите сообщение об ошибке, чтобы повторить попытку позже.
6: Как использовать глобальную страницу обработчика исключений?
По крайней мере, в удобной для пользователя форме. Таким образом, в том же макете, с некоторыми вводными «извините» и, если необходимо, с некоторыми подробностями об ошибках и адресом электронной почты, чтобы пользователь мог связаться в этом случае.
7: Каким образом в этом контексте должны использоваться ошибки ActionErrors?
Показывать их пользователю в том же виде.