IDEA 调试Java代码的两个技巧
本文介绍两个使用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
放开断点后,控制台打印结果如下,说明变量值被成功修改。
第一次打印:矩形画图工具
第二次打印:我是Wiener
do 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,直到定位到异常根源。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南