Swift/swift 문법
에러 처리
Lyla.
2023. 3. 27. 21:21
함수에서 에러가 발생하는 경우 이를 알릴 수 있는 수단이 필요함.
: 에러가 나올 수 있는 함수에는 표시하기로 함 (throws 키워드)
에러타입 정의
enum Errors: Error {
case errorMax
case errorMin
}
: 사전에 에러타입을 정의해주어야함.
func checkError(a:Int) throws -> Bool{
// :throws 키워드로 에러를 던질 수 있음을 알림
if a > 5 {
throw Errors.errormax
//5 이상인 경우 에러타입 반환
}
}
에러가 발생할 수 있는 함수 실행 방법
do {
let result = try checkError(m:5)
//try키워드 필수, 함수가 정상적으로 실행 된 경우에 result에 할당
} catch {
//이곳에서 에러 처리
print("에러가 발생했습니다.")
}
에러 발생 가능한 함수의 형태
Int throws -> Int
() throws -> ()
catch 블럭 처리법
//try
do {
let result = try checkError(a:5)
} catch Errors.errorMax {
//Errors.errorMax인 경우 실행
}
//try? : 에러 발생 시 nil 반환
let data = try? checkError(a:5)
//try! : 에러 발생 시 에러 발생(종료), 에러가 발생할 수 없는 경우에만 사용
let data = try! checkError(a:5)
rethrowing함수로 에러를 다시 던지기
에러를 던지는 throwing함수를 파라미터로 받는 경우, 내부에서 다시 에러 던지기 가능
func errorfunc(callback: () throws -> Void) rethrows {
//callback 함수가 에러를 던지는 경우
try callback()
}
rethrows 키워드 사용