TLDR; right click on a breakpoint and add code that returns a boolean to make it a conditional breakpoint
Breakpoints are great. You find the section of code that you want to investigate. Click on the side of the screen to create a breakpoint. Run the code in debug and it stops where you want it.
But what if you only wanted to stop on that breakpoint sometimes.
What do you do?
Add a watch, then when the code stops at the breakpoint, look at the watch and if it is not what you want, carry on?
Well that’s one way.
The other way is a conditional breakpoint.
A breakpoint that only triggers when a certain condition is set.
Let’s have a look.
I have this test.
And it fails!
java.lang.ArrayIndexOutOfBoundsException: 16
at com.javafortesters.chap009arraysiteration.exercises.
TriangleSquareExercisesDebugTest.createSquare2dArray
(TriangleSquareExercisesDebugTest.java:37)
well, it fails on something when it is 16.
Is it i==16
or is it row==16
?
I know. I’ll convert the breakpoint to a conditional breakpoint and find out.
To create a conditional breakpoint I simply right click on the breakpoint symbol and type in a condition.
**
** The condition is any adhoc Java code that will compile in the context of the breakpoint, and return a Boolean
.
So I could make the ‘Condition’ i==15
then the breakpoint should only trigger when i equals 15.
Now when the breakpoint fires, I only have to step over once to get to the point where my code throws its error.
Rather than having to step through the loop 15 times.
Worth trying?