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 |