Swift 2.x Plus
Swift进化到2.0的时候就基本成型了。这里会集中介绍一下2.0和之前版本的不同之处。这也就是plus的含义。 try-catch在其他语言里基本都用
enum MyError: ErrorType {
case MissingParameterError
case TypeCastError
case NetworkError
}
注意自定义异常需要在内置的ErrorType上。这是必须的。 你定义好自己的异常enum之后,下面就可以聊一下 首先, func accessNetwork() throws -> String{}
有了 func accessNetwork() throws -> String {
print("start access network")
throw MyError.NetworkError
return "response from network"
}
在这个方法里的print用来打印输出,好想这个方法做了什么。 上文说到,带有 try accessNetwork()
把 do {
try accessNetwork()
print("success")
} catch {
print("access network failed")
}
这是一个比较基本的示范。 do {
try accessNetwork()
print("success")
} catch MyError.NetworkError {//处理NetworkError异常
print("access network failed")
} catch {
// 处理全部未被处理的异常
}
除了try-catch之外还有一个简写的异常处理办法: 清理现场。在做完所有的操作后你可能需要一个清理的操作。使用 func closeNetwork() {
// close
}
调用关闭连接的方法: func accessNetwork() throws -> String {
print("start access network")
defer {
closeNetwork()
}
throw MyError.MissingParameterError
try storeData()
return "data from network"
}
方法的最后会调用closeNetwork()方法,关闭网络连接。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |