普通断点
- 行断点是最基础的断点(红色的圆形)。
详细断点
- shift + 鼠标左键(点击代码行号后面)如下图:
此时如果直接点击 Done 按钮,就会出现一个黄色的断点:
当dubge运行的时候,代码运行到断点处,不会停止,只会在控制台中输出断点的方法的签名和行数:
- 同样shift + 鼠标左键
- 如果勾选 Suspend 和 All,此时断点就和上面的普通断点一样。
- 如果勾选 Suspend 和 Thread ,只有在当前线程运行到当前代码时,才会挂起。其余的线程则正常运行。在调试多线程时很有用。
- Condition 中可以填写一些 if 添加判断。
多线程断点调试
- 断点类型,如下设置:
- 程序以debug模式运行,然后在浏览器触发两次,会出现如下图中 2 标记的两个线程。
方法断点
- 在方法签名上打断点(红色的菱形),如下图:
当debug启动后,运行到该方法,则会在方法的第一行挂起:
当嗯下 F9(即 Resume Program),断点会在方法的最后一行挂起:
可用来检查方法或者返回值有没有达到自己的预期。
异常断点
1、ctrl + shift +F8,会弹出以下界面,然后点击左上角的加号:
2、选择 3:
3. 搜索需要添加的异常类型:
4. 完成后效果如下:
5、然后代码模拟添加的异常,不用打断点,直接debug运行程序,程序会在出现刚刚添加的异常类型的位置挂起,如下图:
接口断点
- 在接口方法上打断点,程序启动后,会在实现类的方法中停下。方便找到接口的实现类
- 如下代码,OrderOverseas 实现了 OrderStrategyService 接口。
public class OrderOverseas implements OrderStrategyService {
@Override
public String preCreateOrder(OrderInfo orderInfo) {
System.out.println("海外订单");
return orderInfo.getPlatFormType() + "海外";
}
}
- 在OrderStrategyService 接口的 preCreateOrder 方法上打断点。
- 代码会在接口实现类的方法第一行挂起:
字段断点
- 在类属性前面打断点,如下图
2. 以debug运行代码,代码会在 为approver 属性赋值的时候挂起。