本篇解析 example-cancel-05.kt,探讨协程取消后的收尾工作。
1. 核心机制:finally
由于协程取消会抛出 CancellationException,我们可以利用标准的 try-finally 语法来确保清理逻辑。
- 清理时机:无论协程是正常完成,还是中途被外部取消,
finally块里的代码都保证会被执行。
2. 实际应用
- 关闭数据库连接。
- 释放文件流。
- 停止动画或网络轮询。
3. 开发者感悟
在编写复杂的协程逻辑时,始终要养成“随手关门”的习惯。将重要的资源回收逻辑放在 finally 中,是避免内存泄漏和资源浪费的关键。