본문 바로가기

error3

[iOS/ UIKit] Error 핸들링 - 모든 에러를 하나의 형식으로 관리하자 feat.ReactorKit ReactorKit을 사용하면서 state에서 Error를 받고 있었고 여러 UseCase에서 다양한 Error들을 내뱉는데 어떻게 관리를 해야 할까 고민이 있었다.한 개의 에러에 모든 에러를 몰아 넣을 수 없었다. 또한 NSError로 모두 정의하기에는 코드가 너무 지저분해 보였다.각 클래스마다 에러를 지정하고 싶었고, 내가 정의하지 못한 시스템 에러 또한 잡아주기를 원했다.그리고 각 에러마다 StatusCode와 간단한 설명이 있으면 좋겠다고 생각했다.따라서 각 클래스마다 LocalizedError 프로토콜을 준수하는 에러 값들을 만들고 statusCode와 errorDescription을 따로 선언해 주었다.예를 들면 다음과 같다 enum NaverLoginError: LocalizedError {.. 2024. 8. 2.
[iOS / Fastlane ] Fastlane을 통해 설정 및 CD 환경 구축 시 마주쳤던 에러 모음 Ruby 버전 문제원인brew로 fastlane을 설치 -> 자동적으로 맞는 Ruby 버전을 같이 설치해 줌? 따라서 따로 설정할 것이 없음.이라고 나와있어 brew로 설치기본으로 맥이 가지고 있는 ruby 버전이 있어 해당 버전이 global 로 사용되어 brew로 함께 설치된 ruby 버전이 사용되지 않아 호환성 문제 발생해결과정brew로 설치된 ruby 버전 확인 : brew list rubySystem ruby 버전 확인which rubyruby -v만약 시스템 루비의 버전이 더 낮을 경우 (호환성 문제의 원인이 될 수 있음)brew로 설치한 ruby를 기본경로로 설정하기 echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrcsource ~.. 2024. 7. 23.
[Swift] 오류처리 - throws, do-catch, try 오류와 오류 처리 오류처리란 프로그램이 오류를 일으켰을 때 이것을 감지하고 회복시키는 일련의 과정이다. 오류 표현 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현한다. 사실상 Error프로토콜은 요구사항이 없는 프로토콜이지만, 오류를 표현하기 위해 Error프로토콜을 채택한다. -> Error프로토콜을 채택함으로써 해당 타입이 오류 처리를 위한 타입임을 알 수 있음 오류를 나타내기 위한 타입으로 주로 열거형을 사용함 enum MyError:Error{ case error1 case error2 case error3 } error프로토콜을 준수한 열거형을 하나 선언한 후 나올 수 있는 에러 유형별로 case를 나누어 작성해 준다. 오류 처리 과정 오류 종류를 미리 예상해 오류를 표현함 오류 발생 .. 2023. 4. 12.