我正在将我的代码迁移到Swift 3并使用我的do / try / catch块看到一堆相同的警告 . 我想检查一个赋值是否返回nil,然后如果它不起作用则将某些内容输出到控制台 . catch块表示它“无法访问,因为'do'块中没有抛出任何错误” . 我想用一个catch块捕获所有错误 .
let xmlString: String?
do{
//Warning for line below: "no calls to throwing function occurs within 'try' expression
try xmlString = String(contentsOfURL: accessURL, encoding: String.Encoding.utf8)
var xmlDict = XMLDictionaryParser.sharedInstance().dictionary(with: xmlString)
if let models = xmlDict?["Cygnet"] {
self.cygnets = models as! NSArray
}
//Warning for line below: "catch block is unreachable because no errors are thrown in 'do' block
} catch {
print("error getting xml string")
}
我如何编写一个适当的try catch块来处理赋值错误?
1 回答
你可以做的一种方法就是在找到nil时抛出你自己的错误 .
有了这种你自己的错误:
你可以写这样的东西: