Обработка исключений AOP

Я вижу, что Guice и Spring используют AOP Alliance под капотом для перехвата методов, и я пытался выяснить, как заставить AOP Alliance перехватывать и обрабатывать определенные исключения, чтобы мне не приходилось запись одного и того же кода снова и снова внутри каждого блока catch.

Но после просмотра игры не похоже, что AOP Alliance предоставляет какой-либо способ перехватывать выброшенные Throwables таким образом, чтобы обработчик/перехватчик мог что-то делать (регистрировать исключение и т. д.). .), а затем определить, следует ли распространять исключение дальше или просто вернуться к следующей строке, следующей за строкой, вызвавшей исключение :

HerpDerp hd = null;

if(hd == null)
    throw new RuntimeException("Herpyl derp!");

Manny.pacquiao();

Я ищу механизм обработки исключений АОП который будет перехватывать RuntimeExceptionи использовать бизнес-логику, чтобы решить, следует ли продолжать распространять его или восстановить обратно при вызове Manny.pacquioa().

  • Если это просто невозможно сделать в Java, сообщите мне об этом.
  • Независимо от того, возможно ли это сделать в Java, есть ли способ перехватить выброшенное исключение с помощью AOP Alliance или у меня есть пойти куда-нибудь еще. А если мне нужно идти куда-то еще, то куда? АспектJ?

Спасибо!

20
задан IAmYourFaja 8 June 2012 в 11:26
поделиться