【发布时间】:2015-05-21 11:09:39
【问题描述】:
我正在开发 spring mvc 应用程序。我的问题是当我通过控制器类在 dao 中调用 delete 方法时,dao 中没有处理异常。但是如果我在控制器中使用 try catch 来调用方法,它会捕获错误。
控制器类方法:
customerDao.delete(id);
仓库类:
public void delete(long id)
{
try{
em.remove(em.find(id));
}
catch(Exception e)
{
//not come to here
}
}
如果我使用 try catch 来解决“customerDao.delete(id);”句柄错误。
为什么我不能在 dao 类中处理异常。
注意:抛出的异常是发现意外回滚异常的子记录
【问题讨论】:
-
我们可以看看你的
delete()函数吗? Java 中有一种异常 (RuntimeException) 不需要在try-catch块内。它会一直抛出到catch。我认为,如果您尝试在delete函数中处理异常,它会起作用。 -
究竟抛出了什么异常?您确定它是从您的
delete()-method 内部抛出的,而不是在提交时抛出的吗?请发布完整的堆栈跟踪,它将回答这些问题。 -
完整性约束
违反 - 发现意外回滚异常子记录我现在没有确切的代码。这是工作场所发生的问题。 -
正如我所说的异常是在控制器类中捕获的,但不是在 dao 类中。这是为什么呢?