Swift异常细节

时间:2015-10-08 13:42:48

标签: swift swift2

我在Swift 2中使用Swift异常。我正在使用NSFileHandle(forWritingToURL)构造函数,它失败了。

我的catch块中有错误,但是所有XCode都会告诉我它是一个ErrorType,这是最无用的。我甚至无法看到NSLog。

我该怎么做才能找出问题所在?

2 个答案:

答案 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之前那样做。