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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 2.0 中使用 catch 概念

Swift2.0:如何通过 do try catch 获取返回值和错误

如何实现通用 do-try-catch 块以捕获操作中引发的所有错误

iOS Swift 2.1 - 使用 Try Catch 处理错误

了解 try catch , swift3 xcode [重复]

Sql语法高级应用之六:如何在Sql语句中如何使用TRY...CATCH