只要学会它,再多Bug也不怕
想想,一行代码里有好几个方法,怎么只选择某一个方法进入。之前提到过使用Step Into (Alt + F7) 或者 Force Step Into (Alt + Shift + F7)进入到方法内部,但这两个操作会根据方法调用顺序依次进入,这比较麻烦。 那么智能步入就很方便了,智能步入,这个功能在Run里可以看到,Smart Step Into (Shift + F7),如图5.1 ![]() [图5.1] 按Shift + F7,会自动定位到当前断点行,并列出需要进入的方法,如图5.2,点击方法进入方法内部。 如果只有一个方法,则直接进入,类似Force Step Into。 ![]() [图5.2] 六、断点条件设置 通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。 通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。 1、在断点上右键直接设置当前断点的条件,如图6.1,我设置exist为true时断点才生效。 ![]() [图6.1] 2、点击View Breakpoints (Ctrl + Shift + F8),查看所有断点。 Java Line Breakpoints 显示了所有的断点,在右边勾选Condition,设置断点的条件。 勾选Log message to console,则会将当前断点行输出到控制台,如图6.3 勾选Evaluate and log,可以在执行这行代码是计算表达式的值,并将结果输出到控制台。 ![]() [图6.2] ![]() [图6.3] 3、再说说右边的Filters过滤,这些一般情况下不常用,简单说下意思。 Instance filters:实例过滤,输入实例ID(如图6.5中的实例ID),但是我这里没有成功,不知道什么原因,知道的朋友留个言。 Class filters:类过滤,根据类名过滤,同样没有成功.... Pass count:用于循环中,如果断点在循环中,可以设置该值,循环多少次后停在断点处,之后的循环都会停在断点处。 ![]() [图6.4] ![]() [图6.5] 4、异常断点,通过设置异常断点,在程序中出现需要拦截的异常时,会自动定位到异常行。 如图6.6,点击+号添加Java Exception Breakpoints,添加异常断点。然后输入需要断点的异常类,如图6.7,之后可以在Java Exception Breakpoints里看到添加的异常断点。 (编辑:宿州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |