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

如何在Chrome中调试‘Uncaught (in promise)’异常?

解决Promise异常未触发DevTools断点的问题

原因

Promise内部抛出的异常会被自身的错误处理机制接管——哪怕你没写显式的catch,浏览器也会隐式捕获并处理,这就导致普通的「Pause on caught exceptions」「Pause on uncaught exceptions」断点不会触发,因为这两个断点针对的是同步代码的异常捕获逻辑,而非Promise异步微任务的异常。

解决方法

在DevTools的Sources面板操作:

  1. 打开Breakpoints侧边栏
  2. 点击侧边栏右上角的+按钮
  3. 输入以下断点关键词之一,按回车确认添加:
    • unhandledrejection:针对没有被任何catch处理的Promise异常
    • rejectionhandled:针对被catch处理过的Promise异常

添加完成后,当Promise抛出异常时,调试器会直接在异常抛出的代码行中断,不管是否有显式的catch处理。

注意事项

  • 如果代码中存在全局的unhandledrejection事件监听(比如window.addEventListener('unhandledrejection', ...)),建议暂时禁用,避免影响断点触发。
  • 确保浏览器版本较新(Chrome 60及以上),旧版本对Promise异常断点的支持不完善。

内容的提问来源于stack exchange,提问作者LOST

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:34:52