SupervisorJob

    [Coroutine] 12. SupervisorJob를 이용한 Coroutine Exception Handling

    Coroutine의 Exception Handling Coroutine은 비동기 프로그래밍을 위한 일시중단가능한 경량 스레드이기 때문에 코루틴 내부에서 코루틴이 수행될 수 있으며, 그 깊이는 무한해질 수 있다. 하지만, 코루틴 내부에서 수행되는 자식 코루틴에 애러가 생겼을 때 별도의 Exception Handler을 설정해주지 않으면 자식 코루틴은 부모 코루틴까지 취소시키게 된다. 부모 코루틴이 취소되면 당연히 부모의 자식으로 있는 코루틴이 모두 취소된다. 예를 들어 아래와 같은 구조의 코루틴이 수행된다고 해보자 만약 Child Coroutine1에서 애러가 생겨서 Coroutine이 취소되었다고 하면 아래와 같은 일이 일어난다. Child Coroutine1의 취소가 부모 Coroutine에게 전파된다..