반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- openAI
- 데이터저장
- 자동화
- nocode
- appsheet
- 파이썬
- 앱시트
- 어플만들기
- 구글스프레드시트
- Looker
- 샤딩
- data
- 어플
- 데이터분석
- 데이터
- Python
- lookML
- 앱만들기
- 데이터시각화
- 노코드앱
- 인공지능
- 노코드
- 자바
- 휴가관리
- Ai
- 데이터모델링
- 엑셀
- app
- Java
Archives
- Today
- Total
공부한 것 꼭꼭 씹어먹기
try-catch 본문
반응형
스위프트에서 오류를 처리하는 방법
- 함수에서 발생한 오류를 해당 함수를 호출한 코드에 전파하는 방법 : throws
- do-catch 구문을 이용하는 방법
- 옵셔널 값으로 오류를 처리하는 방법 : try?
- 오류가 발생하지 않을 것이라고 확신하는 방법 : try!
// 에러를 열거형으로 정의
enum PhoneError: Error {
case unknown
case batteryLow(batteryLevel: Int)
}
// 에러가 발생할 것 같은 지점에 아래 에러를 던저주자
throw PhoneError.batteryLow(batteryLevel: 20)
// 1. 함수에서 발생한 오류를 해당 함수를 호출한 코드에 전파하는 방법
func checkPhoneBatteryStatus(batteryLavel: Int) throws -> String {
guard batteryLevel != -1 else { throw PhoneError.unknown }
guard batteryLevel > 20 else { throw PhoneError.batteryLow(batteryLevel:20)}
return "배터리 상태가 정상입니다."
}
// 2. do-catch
do {
try checkPhoneBatteryStatus(batteryLevel: -1)
}catch PhoneError.unknown {
print("알 수 없는 에러입니다.")
}catch PhoneError.batteryLow(let batteryLevel) {
print("배터리 전원 부족. 남은 배터리 : \(batterylevel)%")
}catch {
print("그 외 오류 발생 : \(error)")
}
// 3. 옵셔널 값으로 오류를 처리 : try? 이하 구문이 에러를 뱉으면 그 구문의 반환값은 nil이 된다
let status = try? checkPhoneBatteryStatus(batteryLevel: -1)
print(status) // nil 출력
let status = try? checkPhoneBatteryStatus(batteryLevel: 30)
print(status) // Optional("배터리 상태가 정상입니다") 출력. 에러가 아니면 옵셔널로 감싸서 반환
// 4. 오류가 발생하지 않을 것이라고 확신하는 방법
let status = try! checkPhoneBatteryStatus(batteryLevel: 30)
print(status) // "배터리 상태가 정상입니다" 출력. 만약 에러 던지면 런타임에러남
반응형
Comments