我在Swift 2中使用Swift异常。我正在使用NSFileHandle(forWritingToURL)构造函数,它失败了。
我的catch
块中有错误,但是所有XCode都会告诉我它是一个ErrorType,这是最无用的。我甚至无法看到NSLog。
我该怎么做才能找出问题所在?
答案 0 :(得分:1)
如果出于某种原因,catch
中的错误行为不符合预期,请尝试将其强制转换为NSError并检查其debugDescription
属性:
do {
try NSFileHandle(forWritingToURL: ...)
} catch let error as NSError {
print(error.debugDescription)
}
ErrorType被桥接到NSError所以使用这种语法它应该告诉你通常的错误域,错误代码和错误消息。
答案 1 :(得分:0)
如果它是Apple创建的方法,它很可能实际上是返回NSError而不是ErrorType ......
在catch中,您可以将ErrorType强制转换为NSError。
catch let error as NSError
然后像你在Swift 2之前那样做。