Try and catch 不抛出消息并处理问题

Try and catch is not throwing message and handling the issue

我正在尝试 post 在我的应用程序中定期向我的 API 发送一些内容,假设每 3 分钟一次,在 return 中,我有时会收到一些数据,但数据没有传送,我发现数据为零,这就是为什么我试图用下面的代码放置一个 try/catch 概念:

        var err: NSError?
        var json:NSDictionary!
        do {
            json =  try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary
        }
        catch {
            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                postCompleted(succeeded: false, msg: "Logged in.")

            })
        }

但是 catch 语句永远无法工作,每次我得到 nil 时,应用程序都会在 do 内崩溃。

public class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

因为data: NSData没有展开。如果数据为零,函数将崩溃。您添加

guard let data = data else { return }

try/catch因为这个函数可能会抛出错误。如果数据编码格式不正确,该函数会报错,可以在catch中捕获。

希望对你有用。