摘要:在调试程序的时候断点设置是一个常用功能,这里介绍一下 Intellij 中断点的高级功能。
断点条件
有时候我们在调试一个循环的时候,可能循环次数太多,我们只关心某一个中条件下的处理,这时候如果代码没有条件处理,那么加断点只能在循环体内,然后手动继续,知道找到我们需要的条件。
这时候 Intellij 支持加入条件的断点设置,这里我们举一个例子,比如我们在调试的时候发现 ConcurrentHashMap
类中的 get(Object key)
方法总是抛出没有捕获到的 NPE,但是这个类调用太多了,没办法确定到底是那次调用抛出的异常,如果手动继续再查看不现实 (大项目可能要调用成百上千次),这时候我们就可以在断点处加入条件,只有当 key 为 null 的时候,断点才会生效,这样一下就可以定位到问题所在了。下面介绍一下具体操作步骤:
打开断点管理
邮件点击红色的 breakpoint
,然后选择 More
, 当然也可以使用快捷键 Ctrl+Shift+F8
。
断点管理
加入条件
我们可以在 Condition 处加入所需要的断点条件即可 (参考上图)。
最后我们会发现这个断点的标志变成带有问号的断点,表示其并不是一定暂停的,满足条件才会暂停。