我在swift 2.0错误处理中找到的每个指南都显示了自定义类的处理错误。我知道该怎么做,尝试,捕捉,但我不知道的是要抓住什么。我知道我正在测试某些枚举以指示错误,但如果我没有创建该类,我在哪里或如何找到这些错误枚举?
我正在使用
class func JSONObjectWithData(_ data: NSData,
options opt: NSJSONReadingOptions) throws -> AnyObject
所以它说它会抛出,我想处理它,但它抛出了什么?我怎么知道catch块中要捕获的枚举?毫无疑问,我错过了一些显而易见的东西,但是当你无法发现它时,你知道它是什么样的吗?
感谢
答案 0 :(得分:1)
对于Apple框架中的方法,请查看文档并将方法签名与其Objective-C等效项进行比较。
在这种特定情况下,Objective-C等价物是
+ (id)JSONObjectWithData:(NSData *)data
options:(NSJSONReadingOptions)opt
error:(NSError * _Nullable *)error
因此catch
语句中的对象是NSError
对象
do {
let jsonData = try JSONObjectWithData(someData, options:NSJSONReadingOptions())
} catch let error as NSError {
print(error)
}
答案 1 :(得分:0)
并且,如果您保证它应该返回对象,那么您可以使用下面的代码:
let jsonDataObject = try! JSONObjectWithData(someData, options:NSJSONReadingOptions())
在这里,我们可以避免使用" do {} "语法范围