啥情况
有没有发现,一个大循环中,某个变量空指针了,但是异常堆栈只有该行的信息,并不知道是哪个变量、什么情况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是个很牛逼的神器,有很多方便的功能,我们需要好好利用这个工具,提高我们解决问题的效率。