如何处理java中的异常

时间:2015-03-18 15:21:09

标签: java spring jpa

我正在使用spring mvc app。我的问题是当我通过控制器类调用dao中的delete方法时,在dao中不处理异常。但如果我在控制器中使用try catch around调用方法,它将捕获错误。

控制器类方法:

customerDao.delete(id);

Rapository类:

public void delete(long id)
{
try{
em.remove(em.find(id));
}
catch(Exception e)
{
//not come to here
}
}

如果我使用try catch“customerDao.delete(id);”处理错误。 为什么我不能在dao类中处理异常。 注意:抛出的异常是发现了childrollbackexception的子记录

1 个答案:

答案 0 :(得分:0)

EntityManager.remove不会立即执行任何操作 - 事务提交会强制JPA将其语句刷新到数据库,这时您将获得异常。如果要在DAO中处理异常,请添加em.flush();在try块中。这将强制语句到数据库并立即抛出任何异常。