首页 即时通迅 酷信即时通讯 丹尼尔可以使用的IDEA调试技巧!!!

丹尼尔可以使用的IDEA调试技巧!!!

2023-09-12 10:54 浏览量 浏览量:344

前天,我采访了一名来自985大学的实习生,问他通常使用什么开发工具。他甚至没有想到IDEA,所以我问我是否用它来调试。如何设置断点条件?这孩子很笨,想了很久,告诉我他从未用过,甚至从未听说过。

 

 作为一名经验丰富的司机,IDEA调试可以说是家常便饭。如果你不能调试,我不相信你读过源代码,所以不要告诉我原理并直接传递它。

 

 基本接口

 

 IDEA的调试运行模式如下:

 

 ①在调试模式下启动服务,左按钮在运行模式下启动。在开发过程中,我通常直接启动调试模式,这便于随时调试代码。

 

 ②断点:点击左边行号栏中的左键,或者用快捷键Ctrl+F8按/取消断点,断点行的颜色可以自己设置。

 

 ③调试窗口:当访问请求到达第一个断点后,调试窗口将自动激活。如果没有自动激活,您可以转到设置。

 

 ④调试按钮:共8个按钮,调试的主要功能与这些按钮相对应。将鼠标悬停在按钮上,查看相应的快捷键。

 

 ⑤服务按钮:您可以在此关闭/启动服务并设置断点。

 

 ⑥方法调用栈:线程调试通过的所有方法都显示在这里。如果您选中右上角的[显示所有框架]按钮,其他类库的方法将不会显示,否则这里会有很多方法。

 

 ⑦变量:您可以在变量区域的当前断点之前查看当前方法中的变量。

 

 ⑧观察:要查看变量,您可以拖动变量区域中的变量进行观察。

 

 可变视图

 

 在调试过程中,经常需要观察变量的变化来判断业务逻辑。我们可以在以下四个地方观察它们。

 

 ①观察区域变量中最常用的变量

 

 (2)思想中最人道的地方之一是变量的值被隐藏在变量的后面。

 

 ③观察区域,即眼镜的形状,通常不会展开。下图:

 

 单击“+”添加要观察的变量,单击“-”删除它们。

 

 ④当鼠标悬停在变量上时,变量的值会出现。单击展开查看。

 

 计算表达式

 

 调试业务逻辑时,当某个条件或某个变量的计算值未知时,总是需要判断下一行代码,所以这里需要计算表达式的功能。有两种计算表达式的方法,如下所示:

 

 (1)选择要计算的代码,右键单击->求值表达式->求值进行计算。

 

 ②直接点击计算器形状控件,弹出计算窗口,复制代码。注意复制的代码必须是逻辑的,例如,局部变量必须声明。

 

 断点条件设置

 

 对于想阅读Spring源代码的初学者来说,当他们遇到调试UserService的doGetBean的方法时,他们可能会崩溃,因为当容器启动时doGetBean可能会被调用几十次,并且您可以通过在doGetBean方法体中放置断点来使您的生活变得悲惨。

 

 1.设置断点条件有两种方法:

 

 (1)直接右键单击断点并添加条件条件。

 

 ②查看断点(ctrl+shift+F8)显示所有断点,并向条件中添加条件。

 

 2.设置异常断点的方法

 

 在设置了异常断点(如空指针异常)后,当出现需要拦截的异常时,程序将自动定位指定的行。下图:

 

 ① ctrl+shift+F8显示所有断点,点击+添加Java异常断点。

 

 (2)调试运行,一旦代码有此异常,它将自动定位指定的代码。

 

 线程切换

 

 通常,当我们调试时,会截获一个请求。此时,如果我们想发起另一个请求,我们不能重新发送,因为另一个请求被阻止了。只有当当前线程完成执行时,我们才会离开其他线程。有两种方法可以改变IDEA中的阻塞级别:

 

 1.右键单击断点->选择线程->设为默认,如下图所示:

 

 2.显示所有断点(crtl+shift+F8),选择一个断点,选择线程并设为默认值。下图:

 

 设置阻塞级别,然后可以在线程之间切换,如下图所示:

 

 强行抛出异常

 

 这是Idea在2018年添加的一个新函数,它可以在调试时直接抛出指定的异常。使用方法类似于上面的堆栈放弃框架。右键单击堆栈框架并选择抛出异常,然后输入抛出异常的代码,如抛出新的空指针异常。操作如下:

 

 被迫返回

 

 这是IDEA2015中添加的一个函数,类似于上面的手动异常抛出,但只返回指定的值。使用方法与上述类似。右键单击堆栈框架并选择强制返回,然后输入要返回的值。如果它是无效的,那就更简单了,你不需要输入返回值。下图:

 

 至此,IDEA的一些调试技巧已经被引入,但还不是很完整,还有很多功能强大的功能还没有被引入。如果读者认为陈某写得很好,请表扬他们并分享他们。谢谢你!!!

 

 选自过去期间

 

 帅呆了,你还在搜索整合后的配置吗?老司机教你一个窍门!!!

 

 老司机带你去谈接口限流!!!

 

 春天解决了循环依赖,你真的明白吗?

 

 旧的驱动程序会把你从源代码带到Spring生命周期!!!

 

 老司机带你去手写的衬衫相框!!!

 

 小白高级建筑师缺乏这一套2T视频资源!!!

Title
x
咨询留言
请填写以下信息,方便与您取得联系,已开启隐私保护

提交
x
企业认领

姓名:

电话:

验证码:

职务:

邮箱:

提交
x
图形验证码
填写图形验证码发送短信

发送短信