1 条件断点,比如:遍历1个大List的过程中,想让断点停在某个特定值
/*** 1、条件断点*/@Testpublic void test1() {for (int i = 0; i < 10; i++) {System.out.println(i);}}
2 异常断点,在程序中出现需要拦截的异常时,会自动定位到出现异常的那一行。
/*** 3、异常断点*/@Testpublic void test3() {Integer age = null;String s = age.toString();}
效果如下:自动定位到这行
3 强制返回,避免操作资源
场景:我们平时使用debug排查问题,但是我们debug代码有进行一些数据库资源操作或缓存操作等,很显然。这时候,我们就可以使用idea中”Force Return“
/*** 4、强制返回*/@Testpublic void test4() {m1();System.out.println("over");}public void m1() {System.out.println("a");System.out.println("b");//假如后面是一些其他的操作,比如数据操作,我们不希望执行,就可以使用debug中的强制返回,此方法中,断点后面的代码就不会执行System.out.println("c");}
效果如下
4 主动抛出异常,不改代码,调试时自己添加自定义异常,测试try-catch
/*** 抛出异常*/@Testpublic void test5() {try {System.out.println("a");System.out.println("b");System.out.println("c");} catch (Exception e) {e.printStackTrace();}}
效果如下
5 Reset Frame,在Debug程序的时候,是否遇到过因为“下一步”按太快,而导致跳过了想要深入分析的那段代码?是不是很想要有“回到上一步”这样的操作呢?
/*** Reset Frame*/@Testpublic void test6() {m2();}public void m2() {System.out.println("a");System.out.println("b");System.out.println("c");}
效果如下