コードを書いていて、例外処理のパターンに気付き、次のように考えさせられました。
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 のスタックトレースを伝播したいことに注意してください。3 番目の catch 句を使用して新しい JMSException を作成する「気がしません」:)
難しいことはありますか?これは、Java の構文を汚染するだけの極端な状況ですか、それとも追加するだけのクールなことですか?