Android Studio 断点调试异常相关选项总结
一、 Disable until hitting the following breakpoints 下二选一项区别
| 选项 | 中文翻译 | 触发条件 | 适用场景 |
|---|---|---|---|
when any is thrown |
当任意可抛出对象被抛出时 | 触发任意 Throwable(包含 Exception 异常 + Error 错误) |
需监控底层严重问题(如 OutOfMemoryError)时 |
any exception |
任意异常 | 仅触发 Exception 类型异常(日常业务异常,如 SQLiteException) |
排查代码逻辑异常(如 Room 插入失败),开发中更常用 |
二、 Exception Breakpoints 中 Suspend execution 选项说明
-
单词含义
Suspend:暂停、挂起Execution:执行、运行- 整体翻译:暂停执行
-
功能区别(与 Kotlin 挂起函数无关)
勾选状态 效果 适用场景 ✅ 勾选 触发异常断点时,App 立即暂停,跳转到异常代码行,可查看变量、调用链 开发调试阶段,定位异常根因 ❌ 不勾选 触发异常断点时,App 正常运行,仅在 Logcat 打印异常堆栈 上线前监控异常,不打断程序流程 -
关键注意点
此选项中的
suspend是暂停 App 进程执行 ,和 Kotlin 协程里修饰挂起函数的suspend关键字没有任何关联。
三、 结合 Room 进度保存场景的使用建议
- 调试 Room 插入进度的异常时,优先选
any exception+ 勾选Suspend execution,精准定位数据库相关异常(如主键冲突、线程问题)。 - 若需监控严重错误(如内存溢出导致的进度保存失败),可选择
when any is thrown+ 勾选Suspend execution。 - 测试阶段想记录异常但不影响 App 播放流程,可选择对应异常类型 + 不勾选
Suspend execution。