我正在使用Spring3和Hibernate4。我有以下界面和类。
public interface FetchDao{
List<FetchEntity> getOrderList(Integer orderNumber);
}
public class FetchDaoImpl implements FetchDao{
@Autowired
private SessionFactory sessionFactory; //sessionFactory is injected through spring
@Override
public List<FetchEntity> getOrderList(Integer orderNumber) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
FetchEntity.class);
criteria.add(Restrictions.eq("orderNumber", orderNumber));
return criteria.list();
}
}
现在上面的配置工作正常,没有任何问题。我把它们放在了DAO层。上面的方法不会抛出任何异常。但总是抛出用户定义的异常是一种好习惯吗?如下: -
public interface FetchDao{
List<FetchEntity> getOrderList(Integer orderNumber) **throws CustomDAOException**;
}
public class FetchDaoImpl implements FetchDao{
@Autowired
private SessionFactory sessionFactory; //sessionFactory is injected through spring
@Override
public List<FetchEntity> getOrderList(Integer orderNumber) **throws CustomDAOException**{
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
FetchEntity.class);
criteria.add(Restrictions.eq("orderNumber", orderNumber));
return criteria.list();
}
}
此处CustomDAOException
是用户定义的例外。
谢谢!
答案 0 :(得分:0)
是的,从dao层抛出用户定义的异常是好的,这样你的代码就可以获得更多的模块性。