ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 에러 처리
    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
Designed by Tistory.