IntelliJ Java调试:method3抛异常时让调试器停在method2
在IntelliJ调试器中,当method3抛异常时停在method2的实现方法
嘿,这个需求完全可以通过IntelliJ的异常断点+栈过滤来实现,不用写复杂的条件表达式,咱们一步步操作:
步骤1:创建异常断点
- 打开IntelliJ的断点管理面板:可以用快捷键
Ctrl+Shift+F8,或者点击调试窗口左侧的「查看断点」图标(小方块带闪电样式的那个)。 - 点击面板左上角的
+按钮,选择 Java Exception Breakpoints。 - 在弹出的搜索窗口中,找到你
method3抛出的异常类(比如是自定义异常就搜类名,通用的Exception就选java.lang.Exception),勾选它后点击「OK」。
步骤2:调整断点属性,让它停在method2
默认情况下,这个异常断点会停在抛出异常的method3里,咱们要修改它的栈过滤规则:
- 在断点面板里找到刚才创建的异常断点,右键点击它,选择 Properties。
- 在属性窗口的「Filtering」区域,找到 Stack trace filter,点击「Add」按钮。
- 在输入框里填写
method2的全限定名,格式是你的包名.你的类名.method2(比如com.example.MyClass.method2),然后选择「Include」选项。 - 确认「Suspend」选项设置为「Thread」(默认就是这个,确保只暂停抛出异常的线程),然后点击「OK」保存设置。
额外提示
- 如果
method3抛出的是特定类型的异常,一定要精准选择对应的异常类,别选太宽泛的(比如直接选Throwable),不然会触发很多无关的断点。 - 栈过滤的规则支持通配符,比如如果多个类里都有
method2,可以写*.method2,但还是建议用全限定名更精准。
这样设置后,下次method3抛出异常时,调试器就会自动回溯调用栈,停在method2的执行位置啦~
内容的提问来源于stack exchange,提问作者Jericho
相关产品推荐
相关产品推荐

