본문 바로가기

교육/Swift

[swift] guard

1. guard

guard : 방어코드 작성할때 씀 guard else 문


2. 샘플 코드

// 예외를 던질 사용할 enum 상수

// 아무것도 없지만 is ErrorType으로 검사할 있으니 좋은 구현?

enum FileSendError : ErrorType

{

    case NoConnection

    case FileNotFound

}

func sendFile( a : Int) throws ->Bool // 예외 가능성이 있으면 throws 명시

{

    //    print("s")

    //    return true // 리턴해버리면 defer 안불림

    defer // throw발생해서 종료되었을 실행, 예외가 안나왔을때도 부름, 예외가 나와도 부름, 항상 처음에 있어야함

    {

        print(" 코드는 함수가 종료되기 전에 항상 실행")

        // closeDB()

    }

    print("start")

    // 멤버 data = 자원할당

    if a == 0

    {

        throw FileSendError.FileNotFound // 예외 던짐

    }

    print("end")

    return true

}

do{

    try sendFile(0) // 예외 가능성이 있는 함수를 호출하기 위한 표시

}catch FileSendError.NoConnection{

    print("no connection")

}catch FileSendError.FileNotFound{

    print("not found")

}catch let error as NSError{ // 모든거 잡음

    print("Unknown Exception : \(error.localizedDescription)")

}

'교육 > Swift' 카테고리의 다른 글

[swift] 접근자  (0) 2016.08.22
[swift] selector  (0) 2016.08.22
[swift] exception  (0) 2016.08.22
[swift] generic  (0) 2016.08.08
[swift] operator overloading  (0) 2016.08.08