반응형
개인 error을 만들기
Error Protocol을 이용하여 열거형을 만듭니다.
여기에서는 phoneError라는 이름으로 만들었습니다.
error발생시키기
함수 안에 error를 발생시킬 수 있습니다.
함수 선언부분에 throws를 써야합니다.
던지고자하는 error앞에 throw를 써야합니다.
throw를 통해서 함수를 요청했던 부분으로 에러가 던져집니다.
error처리
error를 처리하는 방법은 총 3가지가 있습니다.
1. do - catch
함수에서 던져진 error를 do안에서 받고 error에 해당되는 catch문에서 처리합니다.
2. try?
함수에서 던져진 error를 해당 줄에서 받게 됩니다.
error가 발생하면 nil을 받게 됩니다.
error가 없으면 정상적인 반환값을 받게 됩니다.
3. try!
함수에서 던져진 error를 해당 줄에서 받게 됩니다.
error가 발생하면 심각한 error로 인식하여 강제로 프로그램이 종료됩니다.
error가 없으면 정상적인 반환값을 받게 됩니다.
소스
enum phoneError: Error {
case powerOff
case batteryLow(Level: Int)
}
//1. 함수 안에서 error를 던지기
func phoneCheck(batteryLevel: Int) throws -> String {
guard batteryLevel != -1 else { throw phoneError.powerOff }
guard batteryLevel >= 20 else { throw phoneError.batteryLow(Level: batteryLevel) }
return "정상"
}
//2. 함수에서 발생한 error를 처리하기
do {
try phoneCheck(batteryLevel: 1)
}
catch phoneError.powerOff {
print("poweroff")
}
catch phoneError.batteryLow(let batteryLabel) {
print("batteryLow \(batteryLabel)%")
}
//3. 함수에서 발생한 error를 처리
let status = try? phoneCheck(batteryLevel: 20)
//error가 던져지면 nil반환
//에러가 없으면 "정상"반환
//4. 함수에서 발생한 error를 처리
let status2 = try! phoneCheck(batteryLevel: 20)
//error가 던져지면 프로그램이 강제종료되고 에러가 표시됨
//에러가 없으면 "정상"반환
반응형
'iOS > swift' 카테고리의 다른 글
optional 해제방법 (0) | 2022.04.27 |
---|---|
기본문법 (0) | 2021.12.27 |
In-Out 파라미터(Parameters) (0) | 2021.11.01 |
[Swift] AVFoundation 이용하기 (0) | 2021.10.24 |
[swift] collectionview 사용하기 (0) | 2021.08.21 |