2016-02-22 26 views
3

NSSetUncaughtExceptionHandler的目的是捕捉異常並將其轉儲到某處,以便我們可以找到應用程序崩潰的原因以及異常。NSSetUncaughtExceptionHandler在swift中沒有捕捉到異常但是Crittercism是這樣的

在Objective C中,它捕獲異常,如expected..Here是reference

但在迅疾當異常發生時其沒有被捕獲。下面是我在didFinishLaunchingWithOptions

NSSetUncaughtExceptionHandler { exception in 
      NSUserDefaults.standardUserDefaults().setObject("Exception Details Are \n\nExceptionName--> \(exception.name) \nReason -->\(exception.reason!)\n\(exception.description)", forKey: "Exception") 
      NSUserDefaults.standardUserDefaults().setObject("Call Stack Symbols:\(exception.callStackSymbols)", forKey: "ExceptionCallstack") 
      NSUserDefaults.standardUserDefaults().synchronize() 
     } 

這裏使用的代碼,我用崩潰的應用程序

var c=["a","b","c"] 
    var d=c[4] 

誰能告訴我什麼,我做錯了這裏的片段。

+0

你怎麼測試? (您無法捕捉到Swift運行時錯誤。) –

+0

哦!無論如何趕上迅速的運行時錯誤?我用我用來使應用程序崩潰的代碼片段更新了問題。 –

+0

就我所知... swift運行在與Objective C相同的運行時C –

回答

0

在安裝NSSetUncaughtExceptionHandler之前初始化Crittercism。

而在處理程序開始時,請撥打:

[Crittercism logHandledException:除外]; // ObjC

或 Crittercism.logHandledException(例外)//斯威夫特

+0

我試圖用'NSSetUncaughtExceptionHandler'或其他一些本地代碼來捕捉崩潰,而不使用第三方如* Crittercism * –