-
问题描述
程序调试是作为程序员的一项必备技能,在后端开发的码农不仅要有极强的数理能力和逻辑分析能力,对于程序的调试能力同样也很重要。 -
问题引入
调试的来源其实是在计算机刚开发的时候,一位工程师在计算数据时,发现数次计算结果都不对。于是他就在设备上找问题,寻找哪里出现故障。终于,他发现在一块设备的后面有一个虫子(当然那个虫子死了),使那里的源部件不能正常的工作。他将上述实验写成报告,其中引用了(Debug)一词,从此,debug就有调试的意思了。 -
本文主要在Java语言应用ideal IDE来进行程序调试的模拟。
话不多说,上代码。
package Test;
public class Test {
private static void test(int[] arr) {
for (int i = 0; i < arr.length; i++) {
try {
if (arr[i] % 2 == 0) {
throw new NullPointerException();
} else {
System.out.print(i);
}
} finally {
System.out.print("e");
}
}
}
public static void main(String[]args) {
try {
test(new int[] {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print("E");
}
}
}
在学习Java中的异常与捕获的过程中博主看到了这一样例,以此来探究如何通过IDE来调试程序。
首先,在代码块的左边单击鼠标左键来打断点(breakpoint)
在代码块中右击进入调试页面
进入如下页面,我们可以看到,在打断电的这一行代码,Debugger中显示了该方法的成员变量以及main方法。
开始调试时,我们可以记住几个快捷键
Step Over(按F8键)进入程序的下一步
Step Into(按F7键),进入该方法的内部
程序控制台的侧边时View Breakpoints,可以理解为对断点的管理。
好的,开始调试
键入F8,执行程序的下一步
此时程序执行到try代码块的if条件判断语句。再键入F8
进入throw语句,因为开始的i值为0,所以程序进入自定义异常——空指针异常,此时我们可以键入F7进入方法内部。
我们发现程序执行到finally语句,跳过了条件判断语句。
我们注意到引用数组的代码块后面显示int[6]@535,对于初学者我们不再次赘述,只需理解它指代数组的地址,535为哈希码值。
重复操作,
因为之前抛出异常,在main程序中捕获了异常。
重复操作。
此时调试程序结束。由调试程序的过程可知该方法易于知道程序的内部运行细节,在调试的过程中也能提高编程能力。
初来乍到,如有错误,还请斧正。