swift 2.x 如何使用try catch
Posted
技术标签:
【中文标题】swift 2.x 如何使用try catch【英文标题】:swift 2.x how to use try catch 【发布时间】:2015-12-16 08:47:43 【问题描述】:这是我的异步图像加载器代码。
编译错误和警告。
警告 >>> 'try' 表达式中不会调用抛出函数。
我的第一个代码>>>
let getImage = UIImage(data: NSData(contentsOfURL: NSURL(string: imageURL)!)!)
completion(result: getImage!)
但是这段代码有错误,wifi连接没有错误
wifi断开有错误。
所以我想用try-catch。
do
let getImage = try UIImage(data: NSData(contentsOfURL: NSURL(string: imageURL)!)!)
completion(result: getImage!);
catch
print("NOT CONNECTED")
我哪里错了?
【问题讨论】:
我为我的小英语感到羞耻T_T..... 【参考方案1】:UIImage(data: data) 不会抛出任何异常,所以你不能只使用 try 和 catch
相反,您可以使用类似的东西
if let data = NSData(contentsOfURL: NSURL(string: "")!)
if let getImage = UIImage(data: data)
completion(result: getImage);
【讨论】:
但是NSData(contentsOfURL: NSURL(string: imageURL)!)
确实扔了一个,对吧?
@mad_manny 不抛出错误,如果你想抛出,你必须自定义你自己的错误,如果你选择点击contentsOfURL
你看到它不会抛出错误,但类似@987654324 @确实
就像@Tj3n 提到的 NSData(contentsOfURL: ) 不会抛出异常,但如果你使用 NSData(contentsOfURL: , options: ) 它会抛出——你可以从 xcode 上的自动完成菜单中看到这些东西以上是关于swift 2.x 如何使用try catch的主要内容,如果未能解决你的问题,请参考以下文章
Swift2.0:如何通过 do try catch 获取返回值和错误
如何实现通用 do-try-catch 块以捕获操作中引发的所有错误
iOS Swift 2.1 - 使用 Try Catch 处理错误