2

デバッグに役立つため、コードでアサーションをかなり使用していますが、Cocoaアプリケーションの標準的な動作は、処理を中断し、アサーションの失敗をコンソールに記録することです。UIがクラッシュしたり、エラーダイアログが表示されたりすることはありません。そして、何が起こったのかがはっきりしないことがよくあります。

プログラムをクラッシュさせる(少なくともトレースを取得する)か、エラーダイアログを表示する最も簡単な方法は何ですか?

アサーションハンドラーを提供する必要がありますか(非常に複雑に見えます!)?または、実行ループで例外をキャッチできますか?

これを最適に行う方法について、どこでも利用できるサンプルコードはありますか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

あなたの質問の主題に答えて:あなたはしません。

すぐにクラッシュするには:abort();

エラーを発生させるには、説明(カスタムメッセージ、エラー番号など)を含むNSErrorオブジェクトを作成し、NSAppに-presentErrorを要求します。

NSErrorルートを使用することをお勧めします。Cocoaは、多くのエラー処理機能とエラー回復機能を提供します。単にクラッシュするよりも、エラー(および場合によってはユーザーの回復オプション)を提供する方がはるかに優れています。結局のところ、エラーが発生する場所(そこでabort()を呼び出すのに十分)がわかっていて、何をアサートしているのか(NSAssertを使用するのに十分)がわかっている場合は、自動的に回復する方法または与える方法について十分に知っています。ユーザーが何をすべきかを決定できるようにするためのオプション。

詳細については、エラー処理プログラミングガイドを参照してください。

于 2010-07-09T19:10:46.550 に答える