前天,我采访了一名来自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视频资源!!!