Coroutine コンテキスト
Coroutine コンテキストでは、そのコードをどのスレッドで実行するか、exception がスローされたときの処理の方法、キャンセルを伝える親のコンテキストを定義します。
val job = Job()
val exceptionHandler = CoroutineExceptionHandler {
coroutineContext, throwable -> whatever(throwable)
}
launch(CommonPool+exceptionHandler, parent = job) { ... }
job.cancel() は、それの保持しているすべての coroutine をキャンセルします。
そして exceptionHandler は、それらの中でスローされたすべて Exception を受け取ります。
【Android】Kotlin でモダンな concurrency その1
【Android】Kotlin でモダンな concurrency その2