Как правильно обрабатывать исключения в перехватчиках в EJB3? - PullRequest
1 голос
/ 26 ноября 2010

Я хочу использовать перехватчик для моего bean-компонента, который будет проверять действительность данного токена соединения.

Если соединение недопустимо, я хочу вызвать конкретное исключение, если соединение истекло,хочу отправить другое (TokenExpiredException, что-то вроде этого).Эти исключения включены в интерфейс, предоставленный клиенту.

@AroundInvoke
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{
    //code to check token
    //...
    throw new TokenExpiredException(); 
}

Из того, что я пробовал, выбрасывание такого конкретного исключения в перехватчик приводит к UndeclaredThrowableException на стороне клиента.Хотя это исключение включает ссылку на причину, оно на самом деле не является идеальным и не может рассматриваться применительно к обычным предложениям catch.

Каков правильный способ объявления различных типов исключений с помощью перехватчиков?

1 Ответ

1 голос
/ 07 декабря 2010

Я не думаю, что есть правильный способ сделать это. Методы должны выдавать только те исключения, которые они объявили, а перехватчик не должен добавлять новое.

Мой личный случай был исправлен добавлением кода ошибки в исключение по умолчанию, которое выдается всеми методами.

...