这将最终阻止执行?
可能重复:
在Java中,最终还是回归王牌?
我在dao实现中遇到了一个java代码片段。它返回一个List,如下所示。
执行'return'语句后,finally块会尝试关闭会话。这项工作会完成吗? 或者会议是否仍然开放?
谢谢
标记
import org.hibernate.SessionFactory;
import org.hibernate.Criteria;
...
public List<Item> findItems(String name) {
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session = factory.openSession();
try{
Criteria cri = session.createCriteria(Item.class);
return (List<Item>) cri.add(Restrictions.eq("name", name)).list();
} finally {
session.close();
}
}
终止块不会被执行的唯一时间是如果你终止你的程序,如System.exit(0)或强制退出等。所以答案是:是的,你的会话将被关闭。
阅读finally块,是的,finally块将在return
后执行。
是的, finally
块总是会执行(*)。
finally
块将在return
之后执行,意思是在执行finally
块之前计算并记住返回值。
(*)警告:除非导致JVM全部结束操作。
链接地址: http://www.djcxy.com/p/73709.html