私は野生の厄介なバグを表示しており、私はそれに私の指を置くことはできません。 Global Try/Catchブロックを持つ方法、またはMonotouchで手に入らない例外を処理する方法がありますか?モノトーングローバル例外処理
UIApplication.Main(args)
をtry catchでラップすることはできますか?
例外がキャッチされた後、Idは結果を表示するためにUIAlertViewを表示します。
助けが必要ですか?
私は野生の厄介なバグを表示しており、私はそれに私の指を置くことはできません。 Global Try/Catchブロックを持つ方法、またはMonotouchで手に入らない例外を処理する方法がありますか?モノトーングローバル例外処理
UIApplication.Main(args)
をtry catchでラップすることはできますか?
例外がキャッチされた後、Idは結果を表示するためにUIAlertViewを表示します。
助けが必要ですか?
try {} catch {}内でUIApplication.Main(args)をラップすることはできますが、その時点でUIAlertViewを表示することはできません。すべてのUIを含むスタック全体を解放したからです。あなたができることは、アプリケーションバンドルのDocumentsフォルダにあるクラッシュファイルに例外を記録し、次回の起動時にそれを表示するか、Webサービスにアップロードすることです。
Exceptioneer男もMonoTouchサポートに取り組んでいましたが、それは検討する価値があります。
Hey Geoff、下の私の答えであなたの質問を参照してください... – Ethan
Exceptioneerが放棄されているかどうかを調べようとしています... – tomfanning
そうです。悲しい時。 – tomfanning
未処理の例外ハンドラ、つまりAppDomain.CurrentDomain.UnhandledException
イベントを使用して成功しました。これは多くの(ただしすべてではない)未処理の例外をキャッチするようです。管理されていないコードでクラッシュすると、このイベントを呼び出さずにアプリケーションが失敗する可能性があります。
Geoff:UIApplication.Main
の例外をキャッチすることに加えて、このイベントをキャプチャするか、どちらかの方法が優先されますか?
それは本当に問題ではありませんが、ネイティブコードでクラッシュすると、あなたを壊してしまいます。アプリは基本的にその時点で壊れていて、それをうまく処理するために何もできません。 montouchコミュニティメンバーの一人が、リリースビルドでdup2(3)を使ってstdoutとstderrをファイルにリダイレクトして、次回の実行時に自分自身にクラッシュログをアップロードできるようにしました。 –
これがモノトゥッチであるかどうかはわかりませんが、使用するウィンドウではわかりません。http://msdn.microsoft.com/en-us/library/system.windows.application.unhandledexception(v=vs.95).aspx – Nate