博客
关于我
IDEA 调试Java代码的两个技巧
阅读量:411 次
发布时间:2019-03-06

本文共 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

  放开断点后,控制台打印结果如下,说明变量值被成功修改。

第一次打印:矩形画图工具

第二次打印:我是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,直到定位到异常根源。

转载地址:http://nsbuz.baihongyu.com/

你可能感兴趣的文章
cglib动态代理导致注解丢失问题及如何修改注解允许被继承
查看>>
算法 - 如何从股票买卖中,获得最大收益
查看>>
机器学习-KNN算法原理 && Spark实现
查看>>
大数据开发-Spark-拷问灵魂的5个问题
查看>>
算法 - 链表操作思想 && case
查看>>
linux下的bash shell
查看>>
运维------术语名词
查看>>
并发编程实战-ConcurrentHashMap源码解析
查看>>
C#之反射、元数据详解
查看>>
通俗易懂设计模式解析——单例模式
查看>>
通俗易懂设计模式解析——抽象工厂模式
查看>>
.NET日志记录之——log4net划重点篇
查看>>
SSM商城项目(十二)
查看>>
Redis必知必会系列
查看>>
第5章选择结构程序设计
查看>>
第4章 最简单的C程序设计——顺序程序设计
查看>>
C#ADO.NET操作数据代码汇总
查看>>
原创企业级控件库之组合查询控件
查看>>
信息系统项目管理系列之七:项目时间管理
查看>>
RDIFramework.NET ━ 9.2 员工管理 ━ Web部分
查看>>