• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Result 타입 에러처리 분기

22.12.07 00:27 작성 조회수 193

0

좋은 강의로 매일 성장하고 있음을 느낍니다 감사합니다.

Result 클래스로 viewModel까지 전달 후 분기하는 과정에서 StreamController를 사용하고 뷰에서 이벤트가 발생한 것을 catch하는 방식으로 로직을 구성하셨는데 굉장히 효율적인 방법이라고 생각했습니다.

혹시 이것 말고 다른 방법도 있을까요

기존에 진행하던 프로젝트에서는

  1. 네트워크 연결했을 경우 try catch,

  2. 서버에서 400번대 응답을 했을 경우 try catch,

  3. json serialization할 때 타입 trycatch(freezed나 jsonSerializable을 사용하지 않았습니다)

     

    이렇게 세번의 try catch가 발생한 것을 하나의 enum을 정의해 뷰에서 enum의 결과에 따라 build안에서 분기하는 과정을 걸쳤는데 굉장히 복잡한 구조가 되었는데 이러한 구조도 괜찮은지,

    혹시 이런 구조도 이 강의대로 리팩토링하면 어떨지 감이 안잡히네요

답변 1

답변을 작성해보세요.

1

사실 방법이야 여러가지가 있는데요.

freezed 를 사용하지 않는다면 enum이 좋은 선택이고요.

freezed 를 사용한다면 enum 대신 Result 클래스로 성공, 실패를 나누고 실패 클래스는 각 에러에 대한 Exception 객체를 따로 담아서 리턴하여 처리하거나 할 것 같습니다.

강의에서는 에러 메시지를 String으로 전달하지만 Exception 객체를 전달하도록 하여 분기 처리를 할 수 있습니다.

예를 들어

각 상황에 맞게 Result.error(xxxException()) 를 리턴하도록 하고

Exception 종류로 분기를 타고 에러 처리를 하면 되지 않을까요?

혹시 이해가 안 되거나 하시면 문의 주세요.