작성
·
651
0
안녕하세요 sunflower 예제와 해당 강의를 참고해서 프로젝트를 진행중인데요
repository에서 통신(retrofit2 사용합니다)을 요청해서 값을 받아와서 해당 값을 viewmodel이 전달받아 LiveData에 전달하여 UI컴포넌트에서 view를 그려주고 있습니다.
딱 이구조를 참고해서 만들고 있습니다.
그런데 통신 요청과정중 Exception이 발생했을때 Throwable 데이터를 viewmodel에 error라는 라이브데이터로 전달하여 UI컴포넌트에서 유저에게 Exception 관련 Dialog를 노출하고 싶은데 Repository에서 viewmodel에 error를 어떻게 전달해야 할지 방법을 못찾고 있습니다.
제가 참고한 예제에서는 Repository에서 정상적인 통신으로 전달받은 data만 반환해주는 메서드이기때문에 예외가 발생했을때 Error에 대해 Viewmodel로 전달할 방법을 고민중입니다.
단순하게 Data와 Error을 묶을 상위 클래스를 객체화 시켜 반환하는 방법도 생각해봤는데 paging3도 함께 사용중인데 이경우에도 사용할수있는 깔끔한 방법이 생각이 안나서 질문 드립니다.
혹시 참고할만한 예제를 알고 있으시다면 알려주시면 감사하겠습니다.
두서없고 정리안된 질문 죄송합니다.. 지금 머리속이 너무 복잡해서요 ㅠㅠ
답변 1
1
https://developer.android.com/guide/background/threading?hl=ko#kotlin
위 링크에 Result<T> 로 성공시 데이터 실패시 Exception을 담는 객체를 사용하는 일반적인 패턴의 코드가 있습니다.
참고가 되실 것 같습니다.
하시다 안 되는 것은 언제든 질문 주세요.