从dao层抛出用户定义的异常类?

时间:2013-10-25 09:59:41

标签: java spring hibernate exception-handling java-ee-6

我正在使用Spring3和Hibernate4。我有以下界面和类。

FetchDao.java

public interface FetchDao{
  List<FetchEntity> getOrderList(Integer orderNumber);
}

FetchDaoImpl.java

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层。上面的方法不会抛出任何异常。但总是抛出用户定义的异常是一种好习惯吗?如下: -

FetchDao.java

public interface FetchDao{
  List<FetchEntity> getOrderList(Integer orderNumber) **throws CustomDAOException**;
}

FetchDaoImpl.java

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是用户定义的例外。

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,从dao层抛出用户定义的异常是好的,这样你的代码就可以获得更多的模块性。