
IDEA 调试Java代码的两个技巧
发布日期:2021-05-09 02:13:31
浏览次数:8
分类:博客文章
本文共 1446 字,大约阅读时间需要 4 分钟。
本文介绍两个使用IDEA 调试Java代码的两个技巧:
- 修改变量值
- 使用RuntimeException终止代码执行
修改变量值
在Java代码调试过程中,我们可以修改变量值,使其达到走指定分支的目的,或者使其满足某个条件。我们以给变量beanName赋值为例,说明如何修改变量值。示例代码如下:
public static void main(String[] args) { String beanName = "矩形画图工具"; System.out.println("第一次打印:" + beanName); System.out.println("第二次打印:" + beanName);//① System.out.println("do something"); }
在①所在行打断点后以debug模式运行main函数,进入变量视图Variables,然后选择变量beanName,再右键单击变量选中Set Value(见图1),就可以在变量视图页面根据变量类型修改变量值,我这里输入“我是Wiener”,覆盖其原始值“矩形画图工具”(见图2)。
图1 图2放开断点后,控制台打印结果如下,说明变量值被成功修改。
第一次打印:矩形画图工具
第二次打印:我是Wienerdo something
使用RuntimeException终止代码执行
使用RuntimeException调试代码的一个好处就是不产生脏数据,另一个好处是尽量少的改变代码,不影响调用者代码。对上述测试代码稍加改造,加入一个RuntimeException异常:
public static void main(String[] args) { String beanName = "矩形画图工具"; System.out.println("第一次打印:" + beanName); if (true) { throw new RuntimeException("测试,终止代码 --------------"); } System.out.println("第二次打印:" + beanName); System.out.println("do something"); }
控制台打印结果如下:
第一次打印:矩形画图工具
Exception in thread "main" java.lang.RuntimeException: 测试,终止代码 --------------at com.eg.wiener.controller.UserController.main(UserController.java:68)
由此可见,在抛出RuntimeException异常后,其后面的业务逻辑不再执行;如果在事务中抛出,则整个事务被回滚。这对于调试涉及大量保存和更新操作的代码非常有用,允许你反复执行,并且数据库中不产生脏数据。例如客户下单过程中,要查询客户是否付款,付款后才把订单状态改为已支付,然后告知客户出单成功,并通知仓库发货;假如在下单过程中抛出了一个莫名其妙的异常,那么,我们就可以在代码中根据调试结果,在多个地方从前向后放入RuntimeException,直到定位到异常根源。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月05日 09时14分00秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
UWP 自定义控件:了解模板化控件 系列文章
2021-05-09
[UWP]从头开始创建并发布一个番茄钟
2021-05-09
在 Azure 上执行一些简单的 python 工作
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2021-05-09
List数组排序
2021-05-09
VMware vSphere 离线虚拟机安装 BIND 9
2021-05-09
说说第一份工作
2021-05-09
dojo/request模块整体架构解析
2021-05-09
dojo/aspect源码解析
2021-05-09
Web性能优化:What? Why? How?
2021-05-09
Javascript定时器学习笔记
2021-05-09
dojo的发展历史
2021-05-09
Python存储系统(Redis)
2021-05-09
C语言指针收藏
2021-05-09
.net 4种单例模式
2021-05-09
T4 生成数据库实体类
2021-05-09
C#搞个跨平台的桌面NES游戏模拟器
2021-05-09
手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)
2021-05-09
《带你装B,带你飞》pytest成魔之路4 - fixture 之大解剖
2021-05-09