Я писал некоторый код, и я заметил шаблон в обработке исключений, который заставил меня задуматься:
try{
// do stuff... throws JMS, Create and NamingException
} catch (NamingException e) {
log1(e);
rollback();
doSomething(e)
} catch (CreateException e) {
log1(e);
rollback();
doSomething(e)
}
Где JMSException будет обрабатываться где-то в стеке.
Было бы просто написать:
try{
// do stuff... throws JMS, Create and NamingException
} catch Exception[NamingException, CreateException] e) {
log1(e);
rollback();
doSomething(e)
}
вместо использования вспомогательного метода:
try{
// do stuff... throws JMS, Create and NamingException
} catch (NamingException e) {
helper_handleError1(e)
} catch (CreateException e) {
helper_handleError1(e)
}
Обратите внимание, что я хочу распространить трассировку стека исходной JMSException, и мне не «хочется» создавать новое исключение JMSException с третьим предложением catch:)
Какие-нибудь жесткие? Это экстремальная ситуация, которая только загрязняет синтаксис Java, или просто классная вещь для добавления?