为什么没有被catch捕捉到,就一句代码!!!!????????

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