Учитывая отсутствие ответов от сообщества, я думал, что опубликую свою реализацию, которая ни в коем случае не благословенна и может даже немного пахнуть.
Для того, чтобы код, вызывающий мой бизнес-уровень (классы, отмеченные @Service
), должен был беспокоиться только об одном исключении (а именно DataAccessException
), любые / все исключения, генерируемые кодом на бизнес-уровне или ниже, включаются в некоторая форма DataAccessException
. Причина, по которой это пахнет смешно, заключается в том, что бизнес-логика может на законных основаниях генерировать исключения, которые не имеют ничего общего с доступом к данным, например, проверка.
Но идея состояла в том, чтобы не загромождать мои сервлеты несколькими блоками перехвата или анти-паттерном try { ... } catch (Exception ex) { ... }
.
Опять же, не совсем ответ, но я полагаю, это работает ...