Inflearn brand logo image

인프런 커뮤니티 질문&답변

이훈님의 프로필 이미지
이훈

작성한 질문수

2시간으로 끝내는 코루틴

9강. 코루틴과 Continuation

suspend 함수에 관해 추가적인 질문 있습니다! (runcatching, Result)

작성

·

91

·

수정됨

0

9강을 듣고 이해한 바로는, suspend 함수는 Continuation으로 resumeWith의 Result를 통해 내부적으로 콜백을 진행한다고 이해하였습니다!

그렇다면 suspend 함수를 사용할때에는 runCatching을 사용하거나, 반환값을 Result로 묶는것은 불필요한 행위라는 결론을 내렸는데, 맞는 생각인지가 궁금합니다!

왜냐면 runCatching과 Result 반환값을 활용하게 된다면, 애초에 suspend로 한번 예외처리를 진행했기에 중복된 작업이라고 생각하였기 때문입니다!

팀원들과 부트캠프를 통해 진행한 프로젝트를 개선하고자 하는데, suspend 함수에 runCatching을 사용 후 Result로 반환을 하였어서 불필요한 작업이라고 생각되어 개선하고자 하기에 질문드립니다!

긴 글 읽어주셔서 감사합니다!

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 이훈님! 🙂 좋은 질문 감사합니다. 결론부터 말씀드리면 불필요한 행위는 아닙니다!

그 이유는 Contiunuation 예시로 보여드린 Result 와 말씀해주신 runCathcing 과 함께 사용되는 Result이름만 같고 다른 객체이기 때문입니다!

suspend 자체는 예외 처리를 해주는 것이 아니고 Continuation 을 이용한 중단 지점으로써의 역할만 수행할 뿐이에요!

실제로 필요에 따라서 suspend + runCatching 으로 예외를 잡아 처리해야 하는 경우가 종종 있답니다.

답변이 도움이 되었으면 좋겠습니다. 감사합니다.

이훈님의 프로필 이미지
이훈

작성한 질문수

질문하기