私は、マルチレベルのロギングを実装するいくつかのアプリケーションのフレームワークに取り組んでいます。これは、主に他のデバイスとの通信をテストするために社内で使用されるアプリケーションで使用されますが、配布する一部のアプリケーションでも使用されます。iOSでキャッチされていない例外の後にコードを実行する方法はありますか?
キャッチされない例外をキャッチする方法はありますか?すぐに例外をログファイルに保存するコードを実行しますか?現時点では、Logクラスは書き込み失敗などの場合に2つのファイルの間で交互に頻繁にファイルに書き込みます。これは問題ありませんが、未処理の例外が発生したことを確認できれば、ファイルへのエントリ、例外が発生し、その詳細をログに記録してから、アプリケーションをクラッシュさせることができます。
アプリ全体の未処理の例外をキャッチするいくつかの方法があれば、私はそれはようなものになるだろうと思うだろう:誰もが私に洞察力やこれが可能であるか否かの提案を与えることができれば
appDidReceiveUnhandledException:(NSException *)exception
{
//write log to disk
//append exception info to log file
//rethrow exception
}
、それ大いに感謝します。 AppDelegate didFinishLaunchingWithOptions
でそれを参照
void HandleExceptions(NSException *exception) {
NSLog(@"The app has encountered an unhandled exception: %@", [exception debugDescription]);
// Save application data on crash
}
:
'@try {} @catch(NSException * ex){}'をレスキューに追加します。あるいは、 'NSException'をうんざりしている方法がありますか? –
[NSSetUncaughtExceptionHandler](https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html)を参照してください(ただし、信頼性はあまり高くありません)。 –
[こちら](http://stackoverflow.com/a/12268397/581994)を参照してください。 –