idea调试java技巧_IDEA调试Java代码的两个技巧
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异常:
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: 测试,终⽌代码 --------------
idea debug
ller.UserController.main(UserController.java:68)
由此可见,在抛出RuntimeException异常后,其后⾯的业务逻辑不再执⾏;如果在事务中抛出,则整个事务被回滚。这对于调试涉及⼤量保存和更新操作的代码⾮常有⽤,允许你反复执⾏,并且数据库中不产⽣脏数据。例如客户下单过程中,要查询客户是否付款,付款后才把订单状态改为已⽀付,然后告知客户出单成功,并通知仓库发货;假如在下单过程中抛出了⼀个莫名其妙的异常,那么,我们就可以在代码中根据调试结果,在多个地⽅从前向后放⼊RuntimeException,直到定位到异常根源。
IDEA 调试Java代码的两个技巧 相关⽂章
Java 链表(⼀)
链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 ⼩结: 1、链表是以节点的⽅式来存储,是链式存储。 2、每个节点包含 data 域, next 域:指向下⼀个节点。 3、如图:发现链表的各个节点不⼀定是连续存储。 4、链表分带头节点的链表和没有
Android主流框架——Rxjava(原理分析)
基本接⼝定义 activex.functions.Functionpublic abstract class ObservableT { companion object { /** * 创建:将传递进来的参数教给ObservableCreate管理 */ public fun T create( observableOn
JDBC—基础
基本概念 Java DataBase Connectivity java 数据库连接,⽤java语⾔操作数据库。 本质:官⽅定义的⼀套操作所有关系型数据库的规则(接⼝),各个数据库⼚商去实现这套接⼝,提供数据库驱动jar包,我们可以使⽤这套接⼝(JDBC)编程,真正执⾏的代码是驱动ja
全⽹最全java Springboot对接开发平台(可能是最全)!
服务接⼊教程⽂档 ⽬录 服务接⼊教程⽂档 开发技术⽂档官⽹ 注册成为开发者 配置接受推送消息服务器 natapp下载,使⽤ 后台构建 后台配置推送消息服务器 接受消息推送 操作对象,获取请求类型(⽐如⽂本、图⽚等)进⾏相应的处理,进⾏
Android主流框架——Rxjava (操作符与使⽤)
创建型操作符 javapractice.activex.Observableimport
Java⾼并发21-AQS在共享,独占场景下的源码介绍
⼀、AQS--锁的底层⽀持 1.AQS是什么 AQS是AbstractQueuedSychronizer的简称,即抽象同步队列的简称,这是实现同步器的重要组件,是⼀个抽象类,虽然在实际⼯作中很烧⽤到它,但是了解它的内部原理是很有必要的,并法包中锁的底层就是使⽤该抽象类实现的,下
Java-JDBC-事务与设置回滚点
Java-JDBC-事务与设置回滚点 事务能够保证SQL要么全部执⾏成功,要么全部执⾏失败 JDBC 默认是⾃动提交事务 每条DML都是默认提交事务的,多个uteUpdate();都会提交⼀次事务 如果想⼿动控制事务,那么就不能让事务⾃动提交 通过Connection
完整的后端开发流程-深⼊浅出Java线程池:使⽤篇
深⼊浅出Java线程池:使⽤篇 完整的后端开发流程 ⼿动步骤⾛⼀种完整的后端开发流程 服务端 1、将远程仓库的jar包拷贝到本地仓库
2、将项⽬代码拷贝到本地并建⽴路径能够执⾏编译
3、编译打包项⽬(package)⾄项⽬下,项⽬跑起来后进⾏本地测试
4、版本稳定后
ES6 - Map数据结构
JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能⽤字符串当作键。这给它的使⽤带来了很⼤的限制。 1 const data = {};2 const element = ElementById('myDiv');3 4 data[element] = 'metadata';5 data['[objec
Java⽹络编程
⼀、⽹络编程三要素 1、IP地址 设备在⽹络中的地址,是唯⼀标识 2、端⼝ 应⽤程序在设备中的唯⼀标识 3、协议 数据在⽹络中传输的规则,常见的协议有UDP协议和TCP协议 ⼆、IP地址 1、含义 IP地址,全称为 Internet Protocol Address ,⽹络协议地址。是分配

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。