竖排按钮 - ||
第六个 Clear All:清空控制台的输出
3 变量查看
- 在IDEA中,参数所在行后面会显示当前变量的值
光标悬停到参数上,显示当前变量信息,点击打开详情
在Variables里查看,这里显示当前方法里的所有变量。
在Watches里,点击New Watch,输入需要查看的变量。
如果你发现你没有Watches,可能在下图所在的地方。
计算表达式
在前面提到的计算表达式如图4.1的按钮,Evaluate Expression (Alt + F8) 。可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。
1、按Alt + F8或按钮,或者,你可以选中某个表达式再Alt + F8,弹出计算表达式的窗口,如下,回车或点击Evaluate计算表达式的值。
这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值。
2、设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况了不是。
智能步入
想想,一行代码里有好几个方法,怎么只选择某一个方法进入。之前提到过使用Step Into (Alt + F7)或者 Force Step Into (Alt + Shift + F7)进入到方法内部,但这两个操作会根据方法调用顺序依次进入,这比较麻烦。
那么智能步入就很方便了,智能步入,这个功能在Run里可以看到,Smart Step Into (Shift + F7)
按Shift + F7,会自动定位到当前断点行,并列出需要进入的方法,如图5.2,点击方法进入方法内部。
如果只有一个方法,则直接进入,类似Force Step Into。
断点条件设置
在满足条件时,才停在断点,否则继续运行。
在遍历一个较大集合时,在循环内设置一个断点,如果还一个个去看变量的值就很没有意义,说不定你这次遍历手滑错过了这个值得重新来次。
在断点上右键设置当前断点的条件
点击View Breakpoints (Ctrl + Shift + F8),查看所有断点
Java Line Breakpoints 显示了所有的断点,在右边勾选Condition
,设置断点条件
勾选Log message to console,则会将当前断点行输出到控制台
- 勾选
Evaluate and log
,可在执行这行代码时计算表达式的值,并将结果输出到控制台
Filters过滤
- Instance filters:实例过滤,输入实例ID(如图6.5中的实例ID)
- Class filters:类过滤,根据类名过滤
- Pass count:用于循环中,如果断点在循环中,可以设置该值,循环多少次后停在断点处,之后的循环都会停在断点处。
异常断点
通过设置异常断点,在程序中出现需要拦截的异常时,会自动定位到异常行。
如图6.6,点击+号添加Java Exception Breakpoints,添加异常断点。然后输入需要断点的异常类,如图6.7,之后可以在Java Exception Breakpoints里看到添加的异常断点。
我这里添加了一个NullPointerException异常断点,如图6.8,出现空指针异常后,自动定位在空指针异常行。