我一直在爲一些實現多級日誌記錄的應用程序開發框架。它主要用於內部用於測試與其他設備通信的應用程序,但也用於我們將分發的某些應用程序。有沒有辦法在iOS中未捕獲的異常之後執行代碼?
是否有任何方法來捕獲未捕獲的異常,並及時執行代碼以將異常保存到日誌文件?目前,Log類只是經常寫入文件,在寫入失敗的情況下在兩個文件之間交替,等等。這可以正常工作,但是如果它能夠看到未處理的異常發生,寫入任何未寫入的日誌請注意發生異常並記錄其詳細信息,然後允許應用程序崩潰。
如果捕獲未處理的異常,應用範圍的一些方法,我認爲這將是這樣的:
appDidReceiveUnhandledException:(NSException *)exception
{
//write log to disk
//append exception info to log file
//rethrow exception
}
如果任何人都可以給我的見解或是否這是可能的建議,它將不勝感激。
'@try {} @catch(NSException * ex){}'來拯救。或者,也許某種方法在NSException上滾動? – 2013-03-11 21:27:56
請參閱[NSSetUncaughtExceptionHandler](https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html)(雖然它不是非常可靠)。 – 2013-03-11 21:33:35
請參閱[這裏](http://stackoverflow.com/a/12268397/581994)。 – 2013-03-11 21:35:07