2015-10-08 192 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.