You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 07:52:35