Swift: throw

나이든별 / Oldstar·2021년 12월 30일
0

Swift / iOS Keywords

목록 보기
2/13

참조 : https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html

  • 요약 : 오류를 뽑아 낼 때, throw한다고 한다. throw와 do-catch와 try가 관계가 있다.
  • 오류 발생의 여지가 있는 메서드에는 func myFunc() throws {} 와 같은 형식으로 throws를 적어 준다. 또한 그 안에 오류를 던지게끔 할 구문 안에 guard (조건) else { throw error } 와 같은 식으로 에러를 던지게끔 만든다.
  • 한마디로 표현하면 throws는 "우리 개는 물어요" 팻말을 걸어 두는 느낌, throw는 이 때 물라고 미리 말해둔 느낌...?
  • try는 "이 함수가 오류가 발생할 수는 있으나, 시도해보겠다" 라는 뜻이다. 저 메서드를 사용한 오브젝트를 만들 때 넣을 수 있다.
  • 그리고 do-catch는 do 안에 try문을 넣고, catch (에러 종류) 와 같은 식으로 에러가 났을 경우 행동할 양식을 정해 줄 수 있다. 이 경우 catch는 생략 가능하다.
  • catch 구문을 오류별로 할당해 주거나, 하나의 catch 블럭 안에서 switch-case를 통해 오류의 종류를 구분해주거나 할 수 있다. 딱히 구분할 필요가 없으면 간단하게 적어도 무방하고, 오류가 났을 때 처리할 필요가 없으면 생략해도 괜찮다.
  • 한편 try? 나 try!는 do-catch 없이도 쓸 수 있다. 전자는 오류 발생 가능성을 인정하고 옵셔널 값을 돌려주며, 후자는 오류가 없다는 강한 확신 하에 쓰는 거지만 오류가 나면 크래시가 난다.
profile
함께 나아가고자 하는 사람

0개의 댓글