这就是实际的代码,不知为何,出现异常后没有进入catch块,调用直接就结束了,然后控制台输出错误,导致前台挂起,还以为数据还在处理中,其实已经异常了。
public void delete(Entity entity) throws AppException { try { this.getHibernateTemplate().delete(entity); } catch (Exception e) { throw new AppException(e); } }
调试后发现时间报错是 java.sql.BatchUpdateException,这个类是Exception的子类,到底是为什么呢?
你在外面抛了一个exception,咋又在里面trycatch外面那个AppException是自定义异常,想在try里获取底层异常转换为应用异常,然后系统统一对AppException做处理。是不是哪里catch了这个异常,然后抛一个runtimeexception,spring就喜欢这么干runtimeexception你exception捉不到的,catchruntimeexception
咋runtimeException也抓不到,这到底是咋的了...明显catch了,但是你又抛出了,外层没有catch,导致直接crash了外层也catch了。另外,在调试时,报错更本不仅catch。
集结各类场景实战经验,助你开发运维畅行无忧