根据我的理解,如果没有将throw集成到你的函数中,就不可能在Swift中捕获异常。
换句话说,以下不起作用,其中myArr只有5个项目:
do {
var someItem = try myArr[10]
}
catch {
print("something went wrong")
}
任何人都可以在Swift中确认上述简单的try / catch是不可能的?换句话说,您不必构建一些精细的元异常函数来处理异常吗?
答案 0 :(得分:0)
正确,但您还有其他选择。您可以先查看10 < myArr.count
。
或者,查看Erica Sadun在Safe array indexing上的帖子:
// Erica Sadun / Mike Ash
// http://ericasadun.com/2015/06/01/swift-safe-array-indexing-my-favorite-thing-of-the-new-week/
extension Array {
subscript (safe index: UInt) -> Element? {
return Int(index) < count ? self[Int(index)] : nil
}
}