描述自己如何调试曾经遇到异常的过程

学习过程中调试遇到的异常

解决曾经在写冒泡算法时遇到的数组越界异常
java.lang.ArrayIndexOutOfBoundsException

import java.util.Arrays;
 
public class BubbleSort {
     
    public static void main(String[] args) {
     
        int[] num = {
     3, 23, 84, 12 ,24 ,52, 15, 90, 27};
        bubbleSort(num);
        System.out.println(Arrays.toString(num));
    }
 
    public static void bubbleSort(int[] nums){
     
        int temp;
        for (int i = 0;i<nums.length-1;i++){
     //外层循环;n个元素排序,则最多需要n-1次循环
            boolean flag = true;//排序标记;true表示有序、false表示无序
            for (int j = 0;j<nums.length-i;j++){
     //内层循环:数列从前往后每两个数据依次比较、排序
                if(nums[j]>nums[j+1]){
     
                    temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                    flag = false;
                }
            }
 
            if (flag) {
     //判断数组是否有序,如有序则退出循环,排序完成
                break;
            }
        }
    }
}

运行后程序遇到异常:
描述自己如何调试曾经遇到异常的过程_第1张图片
异常描述:数组越界异常,由描述可得,异常出现在第17行

将断点设置在第十七行进行Debug调试:
描述自己如何调试曾经遇到异常的过程_第2张图片
可以看出,数组的长度为9,下标最大为8,当j=8时,j+1=9导致数组越界,因此需要将条件j

修改后的代码运行结果:
描述自己如何调试曾经遇到异常的过程_第3张图片
心得总结:
学会了调试功能,在遇到异常时,可以现根据异常的关键信息判断代码所在行,然后根据百度等网上搜索异常相关情况,再利用Debug功能调试,一步一步查找异常的原因,修改代码。

你可能感兴趣的:(java,debug)