-
에러 처리Swift/swift 문법 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 키워드 사용
'Swift > swift 문법' 카테고리의 다른 글
확장에서의 생성자 사용 (0) 2023.03.29 제네릭 (0) 2023.03.27 Result Type (0) 2023.03.27 스위프트 : addSubView 위에 버튼 추가 (0) 2022.10.05 스위프트 : 익스텐션 extension (0) 2022.09.07