ensureActive

调用 currentCoroutineContext().ensureActive()

不同于 rethrowCancellationensureActive 既不会吞掉 CancellationException,也不会意外抛出来自外部协程的 CancellationException