我正在编写一些代码,我注意到异常处理中的一种模式让我思考:
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 的堆栈跟踪,并且我“不喜欢”使用第三个 catch 子句创建新的 JMSException :)
有硬汉吗?这是一种只会污染 Java 语法的极端情况,还是只是添加一个很酷的东西?
他们正在考虑为 Java 7 扩展这种类型。
See: http://tech.puredanger.com/java7#catch http://tech.puredanger.com/java7#catch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)