e.g
try{
  删除一个有外键关联的数据记录  //必然报错
} catch(Exception e) {
  dosomething;
} finally {
  dosomething;
}实践证明:
1、确实有异常,提示不能删除
2、catch和finally中的代码均未运行到求教

解决方案 »

  1.   

    这个异常被Hibernate消化掉了,没有继续往上抛,因此你捕获不到
      

  2.   

    就算捕捉不到异常也应该会运行finally语句块啊?那为什么会不执行呢?
      

  3.   

    自己找找在try中调用的Hibernate接口源码,看看里面有些什么特殊的操作没有,不能连finally都不执行的说...
      

  4.   


    1、在你给的try{}代码块中你的注释说必然报错,如果是错误在异常发生前就出现的话,那这个异常是捕捉不到的,程序也就跟本执行不到finally{}块就终止了,但是话说回来了,如果如果是运行时异常,那么不管捕捉到与否,finally总是要执行的...
      

  5.   

    for(int i = 0; i <= xxlist.size(); i++){
    try{
      删除一个有外键关联的数据记录  //必然报错
    } catch(Exception e) {
      dosomething;
    } finally {
      continue;
    }
    }我也不记得finally部分断点是否有设过结果是出了异常,这段代码就终止了;最终的结果是我想删的东西一点也没有删掉(出错的记录不是第一条);finally部分倒不是非常要紧,回头再试试看看,但是异常没有捕捉到确实非常郁闷
      

  6.   

    for(int i = 0; i <= xxlist.size() -1; i++)刚才那个写错
      

  7.   

    没有主动抛过
    catch里的代码只有一个system.out.println(e.xxxx)
    但是调试模式下根本不会运行到那里
      

  8.   

    还有一种可能是中途产生了一个Error,所以不能捕获
      

  9.   

    1.您确定try中的执行的操作commit了吗
    2.是不是抛出error