协程进阶:05. 资源清理与 finally 块

本篇解析 example-cancel-05.kt,探讨协程取消后的收尾工作。

1. 核心机制:finally

由于协程取消会抛出 CancellationException,我们可以利用标准的 try-finally 语法来确保清理逻辑。

  • 清理时机:无论协程是正常完成,还是中途被外部取消,finally 块里的代码都保证会被执行。

2. 实际应用

  • 关闭数据库连接。
  • 释放文件流。
  • 停止动画或网络轮询。

3. 开发者感悟

在编写复杂的协程逻辑时,始终要养成“随手关门”的习惯。将重要的资源回收逻辑放在 finally 中,是避免内存泄漏和资源浪费的关键。

,