用好IDEA中的异常断点,省时省力

啥情况

有没有发现,一个大循环中,某个变量空指针了,但是异常堆栈只有该行的信息,并不知道是哪个变量、什么情况NPE的,郁闷吧;加个断点一次次循环的跟,要是有几十上百次的循环呢,你跟的住么?比如下面的代码

public class CommonTest {
    @Test
    public void testException(){
        Integer[] arr = IntStream.rangeClosed(1,10).boxed()
            .toArray(Integer[]::new);
        // 便于暴露问题
        arr[6]=null;
        for (Integer s : arr) {
            System.out.println(s.toString());
        }
        System.out.println("exit");
    }
}

运行后只能获得这样的异常信息:

怎么破

其实神器IDEA有一个强大的断点类型:异常断点。就是在程序出现指定的异常时,自动断点,无论在哪里,这个时候debug可以看清所有的情况,按图设置: 这里选择出现哪种异常时debug 这个时候再用debug跑一遍,惊不惊喜,意不意外^_^ IDEA是个很牛逼的神器,有很多方便的功能,我们需要好好利用这个工具,提高我们解决问题的效率。

经验分享 程序员 微信小程序 职场和发展