Result 타입 에러처리 분기
260
작성한 질문수 3
좋은 강의로 매일 성장하고 있음을 느낍니다 감사합니다.
Result 클래스로 viewModel까지 전달 후 분기하는 과정에서 StreamController를 사용하고 뷰에서 이벤트가 발생한 것을 catch하는 방식으로 로직을 구성하셨는데 굉장히 효율적인 방법이라고 생각했습니다.
혹시 이것 말고 다른 방법도 있을까요
기존에 진행하던 프로젝트에서는
네트워크 연결했을 경우 try catch,
서버에서 400번대 응답을 했을 경우 try catch,
json serialization할 때 타입 trycatch(freezed나 jsonSerializable을 사용하지 않았습니다)
이렇게 세번의 try catch가 발생한 것을 하나의 enum을 정의해 뷰에서 enum의 결과에 따라 build안에서 분기하는 과정을 걸쳤는데 굉장히 복잡한 구조가 되었는데 이러한 구조도 괜찮은지,
혹시 이런 구조도 이 강의대로 리팩토링하면 어떨지 감이 안잡히네요
답변 1
1
사실 방법이야 여러가지가 있는데요.
freezed 를 사용하지 않는다면 enum이 좋은 선택이고요.
freezed 를 사용한다면 enum 대신 Result 클래스로 성공, 실패를 나누고 실패 클래스는 각 에러에 대한 Exception 객체를 따로 담아서 리턴하여 처리하거나 할 것 같습니다.
강의에서는 에러 메시지를 String으로 전달하지만 Exception 객체를 전달하도록 하여 분기 처리를 할 수 있습니다.
예를 들어
각 상황에 맞게 Result.error(xxxException()) 를 리턴하도록 하고
Exception 종류로 분기를 타고 에러 처리를 하면 되지 않을까요?
혹시 이해가 안 되거나 하시면 문의 주세요.
MVVM, 클린 아키텍처 관련 질문 있습니다.
0
87
2
가끔씩 ui가 깨지는? 현상이 있어서 질문드립니다.
0
95
1
freezed 3.0 대응된 코드 깃헙에도 업데이트 해주실 수 있으신가요?
0
183
3
sealed class 사용시 기능은 동작하지만 Radio위젯에 선택 표시가 안되는 부분 질문
0
123
2
sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류
0
96
2
유즈케이스 관련하여 질문 드립니다.
0
93
1
mockito사용시 오류 해결법
1
123
2
sealed class 사용 문의2
0
78
2
sealed class 사용 문의
0
120
2
freezed3.0에서 build시 when생성되지 않습니다.
0
264
2
Try implementing the missing methods, or make the class abstract. 문제해결 공유
0
238
2
This is likely caused by a misconfigured builder definition. 오류 해결 방법
1
319
3
강의 화면이 안보여요
0
138
3
Flutter에서 추천하는 Navigator, Router
0
325
2
The following ProgressEvent object was thrown resolving an image codec: [object ProgressEvent]
0
325
3
event와 ui_event
0
212
1
코드 색깔 관련 질문
0
208
1
Photo.fleezed.dart,photo.g.dart삭제시 에러
0
206
2
sealed class 적용 시...
0
327
1
클린 아키텍처 질문
0
309
1
sealed class 데이터 접근
0
328
1
서버에서 데이터를 가져와서 사용하는 경우...
0
235
1
뷰/뷰모델 작성 질문
0
273
1
freezed JsonKey 사용 예시 공유
1
792
1





