抛异样置信大家都会吧?只须要这样就能够了:
throw new RuntimeException("didispace.com");
然而,在开发过程中有一些状况,咱们须要测试程序对异样的解决逻辑是否正确,这个时候就须要咱们在程序运行时被动的抛出异样才会触发相干逻辑来验证正确性,比拟常见的场景有:事务是否会回滚、Web 层的对立异样解决等等。
这个时候,你是如何去制作异样,来反对你的调试呢?
上面我就以前写的 Spring Boot 教程里一个事务处理的例子为场景,给大家看看一些常见的调试操作以及明天要讲的更优雅的操作。
案例阐明
先介绍下场景,这是一个用 Spring Data JPA 实现的数据库操作案例,右侧 UserService
里一个事务操作,外面含有 5 句 User 表的插入语句。
因为 @Transactional
注解存在,所以 saveSomeUsers
函数下的数据插入要么都胜利,要么都失败。胜利很好测试,要测试失败的话,则须要咱们让这个函数抛出异样能力触发回滚操作。
撸起袖子就是抛
为了抛出异样以验证事务是否能回滚,很多小伙伴是这样干的:
间接在这个函数里手工抛出异样,很粗犷很间接,是能够实现指标。尽管这种办法在单元测试中作为一种场景是能够的,但如果在简单的业务过程中这样做就不那么优雅了,因为你测试好还要删掉它,如果遗记了,那就是间接写了个 Bug。
优雅地抛异样
实际上 IDEA 提供了自在抛异样的性能,只须要在 Debug 的时候,右键前几天介绍的回退操作 Reset Frame 地位,就能够看到如下图箭头所标的 Throw Exception
操作了。
而后在弹出框中,你就能够编写你想要抛出的异样了:
是不是很简略呢?连忙关上 IDEA 试一试吧!这里视频教程也同步更新了,点击就能够查看,我正在连载 IDEA 专题的视频内容,感兴趣的小伙伴能够关注我哟!
欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源