public boolean updateTest(Test test) {
try {
getHibernateTemplate().update(test);
return true;
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("更新失败!");
return false;
}
我自己把字段类型输入值过大,就报异常了,但是没有往下执行,直接就停了!!!怎么回事?????????为什么catch捕捉不到异常?!
看看这个函数的外层有没有别的异常
try {
getHibernateTemplate().update(test);
return true;
} catch (Throwable e) {//换throwable试试
e.printStackTrace();
}
System.out.println("更新失败!");
return false;
楼主没有看一下抛出的异常是什么然后试着捕获一下看看嘛
为什么停的 可能根本不抛错 或者抛了你没写的异常
试试throwable
试试throwable
重申一下,就这一句话,没有其他代码了!!就这一个方法!抛出的异常就是sql的值过大异常,基本编程人员都遇到过的!!我的这个异常已经放到了exception,最大了!!等于说,最下面的那句话都没有执行到!!!说明程序直接中断了!!!!
报的这个异常!!2015-05-14 21:21:03,772 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 12899, SQLState: 72000
2015-05-14 21:21:03,772 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-12899: 列 "HR"."TEST"."TEST_TITLE" 的值太大 (实际值: 95, 最大值: 20)
2015-05-14 21:21:03,772 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 12899, SQLState: 72000
2015-05-14 21:21:03,772 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-12899: 列 "HR"."TEST"."TEST_TITLE" 的值太大 (实际值: 95, 最大值: 20)
2015-05-14 21:21:03,774 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update