调用getNextException查看原因

原创 2007年09月21日 17:34:00

前两次都说了Hibernate出现"could not execute JDBC batch update"这个异常时的办法,不过还要看数据库日志,多少有些麻烦。这回就说一下利用出现的“调用getNextException查看原因”提示来在调试时查看到底出了什么事情。

在可能发生异常的catch执行体中加上断点,如下:

try{
    ExampleDAO dao 
= new ExampleDAO();
    Example example 
= new Example();
    example.setId(
"123"); // 假设数据库中已经有主键是123的项了
    Transaction tx = dao.getSession().beginTransaction();
    dao.save(example);
    tx.commit();
}
catch(RuntimeException e){
    e.printStackTrace(); 
// 在这行设一个断点,然后Watch变量e
}

这里假设数据库中已经存在了一个主键为123的元组,并且表example定义了一个约束example_pkey,表明主键唯一约束。这时调试到e.printStackTrace()这行时,就会停在那里,然后我们在Eclipse里面选中变量e,点右键选Watch,则它的信息将被查看,具体如下:

注意标了红色圈圈的地方,这就是错误信息了~ 看到了吧,违反主键唯一的约束~ 所以才抛错的~

哈哈,写到这里吧~

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java.sql.BatchUpdateException

异常信息: java.sql.BatchUpdateException: 批次处理 0 insert into xxx (id, ...) values (44, ...) 被中止,呼叫 get...

java.sql.BatchUpdateException

异常信息: java.sql.BatchUpdateException: 批次处理 0 insert into xxx (id, ...) values (44, ...) 被中止,呼叫 getNe...

[非原子批处理出现故障]使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null

[jcc][t4][102][10040][3.57.82] 非原子批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。 使用 getNextException() 来检...
  • MCpang
  • MCpang
  • 2012-11-30 08:54
  • 17002

批次处理错误解决办法

错误信息:严重: Servlet.service() for servlet action threw exceptionjava.sql.BatchUpdateException: 批次处理 0 u...

查看语句运行时间异常的原因(SQLServer)

经常有开发同事反映如下情况:我有一条语句或者一个JOB昨天跑半个小时就完成了,今天怎么跑了两个小时还没有完成? 是不是数据库出现问题了?     数据库语句运行时间异常,其实是一个比较复杂...

IE无法查看源文件原因及应用技巧

有些网站的主人却对网页进行了一些限制,让你无法查看源代码,有时候甚至让你无法复制网页上的文字,让人很懊恼。其实,网页源码的查看也有许多技巧可循,只要你掌握了它们,就能够事半功倍地为自己的网页服务,下面...

亲测完美解决:服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)

本来转载自:IT摆渡网--一个IT实时问答系统--快速解决你的任何IT问题,无需等待!---www.itbaiduwang.com 错误的提示为: 运行时错误  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)