应用场景

我们平常写代码的时候,难免会因为的自己的疏忽,或者由于自己知识的不足而出现错误,那么出了错误呢,我们首先要进行的就是根据idea 进行的提示来找到错误点在哪,然后根据错误点在附近进行查找以及分析

打断点 是因为当代码量很多的时候,我们一时难以判断是哪里出了问题,此时就要利用断点来缩小范围,然后来进行准确的查找,断点的作用就是碰到了断点就会停下来

我认为打断点分为两种情况

第一种 : 错误在断点位置以前

这一种情况 ,我认为是最好的,因为直接就定位到了错误的位置,接下来进行调试分析就行了 !

java idea 报错前断点 idea断点作用_idea


第二种 : 错误在断点以后

这一种情况还要自己在利用往下执行来查找断点位置,然后才能进行调试分析

java idea 报错前断点 idea断点作用_idea_02


这时候我们就要利用到下图中的安按钮往下执行按钮来继续查找断点位置 .

java idea 报错前断点 idea断点作用_idea_03


平常我们的实际开发中 ,肯定不会只涉及到一个类 ,那是不知道多少个类 之间来回互相调用 例如我们书写的下面的内容

java idea 报错前断点 idea断点作用_为何要打断点_04


首先这是第一个工具类 ,我故意书写了几个相同重复的作用但是方法名不同的方法 ,其中SwaptwoInt1我故意写了一个错

/**
 * @Author Zhang Shuai
 * @Date 2020/6/20 14:20
 * @Version 1.0
 */
public class Test01 {

        int a=10;
        int b=5;


        public  void SwaptwoInt(int a, int b){
        int temp= this.a;
        this.a = this.b;
        this.b =temp;
       // int c=1/0;
        //System.out.println(this.a);
        //System.out.println(this.b);
        }
        public  void SwaptwoInt1(int a, int b){
                int temp= this.a;
                this.a = this.b;
                this.b =temp;
                int c=1/0;
                //System.out.println(this.a);
                //System.out.println(this.b);
        }

        public  void SwaptwoInt2(int a, int b){
                int temp= this.a;
                this.a = this.b;
                this.b =temp;
                // int c=1/0;
                //System.out.println(this.a);
                //System.out.println(this.b);
        }
        public  void SwaptwoInt3(int a, int b){
                int temp= this.a;
                this.a = this.b;
                this.b =temp;
                // int c=1/0;
                //System.out.println(this.a);
                //System.out.println(this.b);
        }
    }

然后这是第二个类 , 对上面的那个类进行调用 , 我故意调用SwaptwoInt1 就是为了显示出来错误

/**
 * @Author Zhang Shuai
 * @Date 2020/6/20 14:26
 * @Version 1.0
 */


public class Test02 {
    public static void main(String[] args) {
        int a=100;
        int b=9999999;
        Test01 test01 = new Test01();
        test01.SwaptwoInt1(a,b);
        System.out.println(a);
        System.out.println(b);
    }
}

结果毫无疑问出错了, 我们可以看到有两行蓝色的带有下划线的东西, 上面描述的是Test01的位置 ,下面描述的Test02的位置 , 意思就是执行到Test02这个位置的时候报错 ,但一定就是Test02中的原因 ,因为调用了Test01 , 很有可能是test01标记的那个位置的错 ,

java idea 报错前断点 idea断点作用_断点调试_05

重中之重的事情

你如果只在test02里打断点 ,他只会在02中一步一步运行 , 他是不会跳到01中去的 , 所以你还要在01中SwaptwoInt1也打一个断点 ,

这里一定不要迷 , 心想01里边这么多方法我们我该在哪里打断点 ,你调用那个方法就在哪里打断点 ,其余写成屎你都不要问 , 因为你走的路线就是 02到01 到SwaptwoInt1 其余的方法千万不要问, 用到了再说

这样就能看到02调用01, 然后01中运行的情况了 , 别看01这么多方法 , 因为只调用了SwaptwoInt1这一个方法 , 所以其余方法中就是有天大的错误也不影响你 , 因为只要实现目前这一个功能就行