1. 코루틴 예외 처리의 기본 원리
- 코틀린 코루틴은 일반적인 코드와 다른 독특한 예외 처리 메커니즘을 가지고 있습니다.
- 코루틴의 예외 처리를 이해하려면 코루틴의 구조화된 동시성(Structured Concurrency) 개념을 알아야 합니다.
- 구조화된 동시성이란 코루틴이 부모-자식 관계를 형성하며, 이 계층 구조를 따라 예외가 전파된다는 것을 의미합니다.
1.1 일반 코드와 코루틴의 예외 처리 차이
- 일반 코드에서는 예외가 발생하면 호출 스택을 따라 위로 전파됩니다.
- 코루틴에서는 예외가 발생하면 계층 구조를 따라 부모 코루틴으로 전파됩니다.
- 일반 함수와 달리, 코루틴은 비동기적으로 실행되기 때문에 예외 전파 방식이 다릅니다.
중요 개념
코루틴에서 처리되지 않은 예외는 해당 코루틴을 즉시 취소하고, 부모 코루틴에도 전파되어 결국 모든 관련 코루틴이 취소될 수 있습니다.