Генерация исключений Spring DataAccessException с устаревшими платформами - PullRequest
0 голосов
/ 06 января 2012

В настоящее время я переписываю устаревшее веб-приложение, в котором используется бэкэнд, среди прочего CORBA и другой RPC-фреймворк - оба довольно старые и не имеют поддержки Spring.

Я надеюсь, что смогув конце концов напишите @Repository классы для обработки вызовов CORBA и других вызовов RPC и оберните все их исключения некоторым набором DataAccessException, который затем будет брошен.

Мои вопросы

  1. Есть ли лучший способ как это сделать, чтобы мои репозитории не выдавали слишком много DataAccessExceptions, особенно в той области, где исключения CORBA и RPC могут создаваться одним и тем же методом репозитория?
  2. должен ли быть класс "ниже" класса репозитория, чтобы, возможно, обрабатывать некоторые из них и абстрагировать их, или это технически, для чего предназначен класс репозитория?

1 Ответ

0 голосов
/ 20 января 2012

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

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

Но идея состояла в том, чтобы не загромождать мои сервлеты несколькими блоками перехвата или анти-паттерном try { ... } catch (Exception ex) { ... }.

Опять же, не совсем ответ, но я полагаю, это работает ...

...