일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- TableView
- RawValue
- enum
- 패스트캠퍼스후기
- 열거형
- 인스펙터
- Realm
- xcode
- Git
- cancelAsyncWrite
- userDefaults
- 프로퍼티 관찰자
- beginAsyncWrite
- 옵셔널 체이닝
- SeSAC
- 함수
- 패스트캠퍼스
- Background
- 패캠챌린지
- 기본문법
- Threading
- switch
- 직장인인강
- 문자열 보간법
- swift
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- Optional Chaining
- ios
- 직장인자기계발
- 독학
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 35일차_오류처리 본문
스위프트에서 에러나가 표현되는 방식과 그 처리방안에 대해 정리해보겠습니다.
■ 오류 (Error)
- 스위프트에서 에러는 에러 프로토콜을 따르는 타입의 값으로 표현됨
: 에러 프로토콜은 요구사항이 없는 빈 프로토콜이지만 오류를 표현하기 위해서는 이 프로토콜을 채택해야 함
: 스위프트의 열거형은 오류 원인을 나누고 해당 오류의 특성에 대한 추가정보를 전달하는 모델을 만드는데 적합함
■ try-catch
- 에러를 처리하는 과정
- 프로그램 내에서 에러가 발생한 상황에 대해 대응하고 이를 복구하는 과정
- siwft에서는 런타임에 에러가 발생한 경우, 이를 처리하기 위한 아래 4가지를 지원하는 1급 클래스 지원함
: 발생(throwing), 감지(catching), 전파(propagating), 조작(manipulating)
- 오류 처리 기능을 통해 오류발생 상황들을 구별하여 프로그램 자체적으로 오류를 해결할 수도 있고,
사용자에게 어떤 오류가 발생했는지 알려줄 수도 있음
■ Swift 오류처리 4가지 방법
1) 함수를 활용
: 함수에서 발생한 오류를 해당 함수를 호출한 코드에게 전파
: 오류가 발생할 수 있음을 나타내기 위해 함수/매개변수/생성자 매개변수 뒤에 throws 라는 코드 써주면 됨
: 반환값이 있을 경우, thows뒤에 반환값을 적어주면 됨
2) do-catch구문 활용
: 함수, 메서드 생성자 등에서 오류를 던져주면, 오류발생을 전달받은 코드블록은 do-catch구문을 이용하여 오류 처리해주면 됨
3) 옵셔널 값 활용
: 오류가 발생할 것 같은 함수 앞에 try? 를 붙여준다
: 함수가 에러를 던져주면 nil값이 반환되고,
함수가 에러를 던져주지 않는다면 옵셔널 값이 출력됨
4) try!를 활용
: 오류가 발생하지 않을 것이라고 확신하는 방법
: 함수 앞에 try! 를 붙여준다
: throwing함수나 메서드를 호출할 때 에러가 절대로 발생하지(던져주지) 않을 이라고 확신할 때 사용하는 방법 -> 만약 오류발생시 프로그램이 강제로 종료됨
본 게시물은 개인 공부 기록용이므로 내용에 오류가 있을 수 있습니다.
■ fast campus강의 외 참조자료
[1] https://blog.yagom.net/564/
[2] https://bbiguduk.gitbook.io/swift/language-guide-1/the-basics#error-handling
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 37일차_고차함수 (0) | 2022.03.01 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 36일차_클로저 (0) | 2022.02.28 |
[Swift 독학] 패스트캠퍼스 챌린지 34일차_옵셔널 체이닝(2) (0) | 2022.02.26 |
[Swift 독학] 패스트캠퍼스 챌린지 33일차_옵셔널 체이닝(1) (0) | 2022.02.25 |
[Swift 독학] 패스트캠퍼스 챌린지 32일차_열거형(2) (0) | 2022.02.24 |