开发者社区> 问答> 正文

对Dao层所有通用方法都加了catch (Exception e){...},但?报错

这就是实际的代码,不知为何,出现异常后没有进入catch块,调用直接就结束了,然后控制台输出错误,导致前台挂起,还以为数据还在处理中,其实已经异常了。

public void delete(Entity entity) throws AppException {
		try {
			this.getHibernateTemplate().delete(entity);
		} catch (Exception e) {
			throw new AppException(e);
		}
	}

调试后发现时间报错是 java.sql.BatchUpdateException,这个类是Exception的子类,到底是为什么呢?



展开
收起
爱吃鱼的程序员 2020-06-14 22:42:43 501 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你在外面抛了一个exception,咋又在里面trycatch外面那个AppException是自定义异常,想在try里获取底层异常转换为应用异常,然后系统统一对AppException做处理。是不是哪里catch了这个异常,然后抛一个runtimeexception,spring就喜欢这么干runtimeexception你exception捉不到的,catchruntimeexception
    咋runtimeException也抓不到,这到底是咋的了...明显catch了,但是你又抛出了,外层没有catch,导致直接crash了外层也catch了。另外,在调试时,报错更本不仅catch。

    2020-06-14 22:43:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载