Error Handling (2)
참고 자료
이 포스트는 yagom’s Swift Basic을 참고하여 쓴 포스트임을 미리 밝힙니다
아래의 링크는 현재 포스트와 내용이 이어지는 Error Handling(1)로 가는 링크 입니다
아래의 링크는 현재 포스트를 바탕으로 한 실습 구현 자료로 가는 링크 입니다
Error Handling(2)
Error throw from the originated Error Function (함수에서 발생한 오류 던지기)
-
위 사진은 자판기 동작 도중 발생한 오류를 던지는 메서드를 구현 한 것입니다.
-
오류 발생 여지가 있는 메서드는
throws
를 사용하여 오류를 내포하는 함수임을 표시
Error Process (오류처리)
오류를 던질 수도 있지만 오류가 던져지는 것에 대비하여 던져진 오류를 처리하기 위한 코드도 작성되어야 한다
- 예를 들어,
- 던져진 오류가 무엇인지 판단하여 다시 문제를 해결
- 다른 방법으로 시도
- 사용자에게 오류를 알리고 사용자에게 선택 권한을 넘겨주어 어떤 동작을 하게 할 것인지 결정하도록 유도
오류 발생의 여지가 있는 throws
함수(메서드)는 try
를 사용하여 호출해야 함
Error Process (do - catch)
오류 발생의 여지가 있는 throws
함수(메서드)는 do - catch
구문을 활용하여 오류 발생에 대비해야 함
- 가장 정석적인 방법
- 모든 오류 케이스에 대응
- 하나의 catch 블럭에서 switch 구문을 사용하여 오류를 분류
- 위의 그림에 나오는 것과 크게 다를것이 없음
- 딱히 케이스별로 오류처리 할 필요가 없으면 catch 구문 내부를 간략화해도 무방
Error Process (try? , try!)
try?
별도의 오류처리 결과를 통보받지 않고 오류가 발생시 결과값을 nil로 돌려받을 수 있다
정상동작 후에는 옵셔널 타입으로 정상 반환값을 돌려 받는다
try!
오류가 발생하지 않을 것이라는 확신이 있을때 try! 사용
정상동작 후에는 바로 결과값을 돌려받는다
오류 발생시 런타임 오류가 발생, 애플리케이션 동작이 중지됨