[RxSwift] Error Handeling

RudinP·2025년 10월 27일
0

Study

목록 보기
368/371

오류 처리 패턴

  1. catch를 통해 next, completed 이벤트는 그대로 전달. error 이벤트 발생 시 새로운 옵저버블 생성 후 전달
  • 예) Network에서 error이벤트 발생 시, 로컬 캐시 등을 방출하는 catch 연산자를 통해 UI 업데이트
  1. retry를 통해 error 이벤트 발생 시 재구독(무한 재시도 혹은 횟수 제한)

catch

  • 소스 옵저버블이 방출한 에러를 새로운 옵저버블로 대체하는 방식

  • 클로저를 리턴하며, 입력된 옵저버블과 동일한 타입의 옵저버블을 반환한다.

catchAndReturn

  • 소스 옵저버블이 방출한 에러를 기본값을 리턴하는 것으로 대체하는 방식
  • 리턴하는 값으로 설정하는 파라미터는 항상 소스 옵저버블이 방출하는 타입과 동일하다.

retry

  • 에러를 전달받을 시 옵저버블을 재구독한다.

    • 계속 에러만 발생 시 무한정 재구독하므로 주의가 필요하다.
  • 에러를 전달받을 시 파라미터로 받은 횟수만큼 옵저버블을 재구독한다.

    • 원하는 재시도 횟수 + 1을 전달해야 한다.
    • 첫번째는 재시도가 아니기 때문이다.
  • 마지막 횟수까지 에러만 발생할 경우 에러를 리턴하고 종료

  • 여기서는 7을 파라미터로 전달하여 6번 재실행 했다.

retry(when:)

  • 특정 트리거가 발생할 때 재구독하고자 할 때 사용

profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글