2015-10-08 56 views
0

我在Swift 2中使用Swift异常。我正在使用NSFileHandle(forWritingToURL)构造函数,这是失败的。Swift异常详细信息

我在我的catch块中出现错误,但是所有的XCode都会告诉我它是ErrorType,这是最大的无益。我似乎无法NSLog它。

这到底是怎么回事,我弄清楚是什么问题?

+0

您是否尝试过使用以前那样'镜(反映:...)'内省的错误? –

+1

他们不是例外,他们只是错误处理。 – zaph

+0

你看过“使用Cocoa和Objective-C中的Swift”一书中的“错误处理”和“捕捉和处理错误”部分吗?有代码示例包括错误记录。 –

回答

1

如果由于某种原因如预期catch你的错误行为不,尝试铸造它作为一个NSError并检查其debugDescription属性:使用此语法它应该告诉你

do { 
    try NSFileHandle(forWritingToURL: ...) 
} catch let error as NSError { 
    print(error.debugDescription) 
} 

错误类型桥接到NSError如此通常的错误域,错误代码和错误消息。

0

如果它由Apple创建的方法很可能实际上是返回NSError而不是ErrorType ...。

在catch中,您可以将ErrorType强制转换为NSError。

catch let error as NSError 

然后不喜欢你斯威夫特2.