13

私は最近Objective-Cを学び始め、練習としてiOSアプリに取り組んでいます.とにかく、例外をスローしてオーバーフローを処理したい(私はJavaのバックグラウンドから来ました)、参考文献を検索しましたNSException.例外処理に関するトピックを記載しているセクションを読んで、使用すると言っNSErrorていましたが、リファレンスを読みましたが、同じプロトコルとメソッドを持っていたので、それらの違いは何ですか? そして、どちらが良いですか?

また、独自の例外またはエラー クラスを作成したいのですが、含めるべきメソッドまたはフィールドはありますか? Exception( Java でインターフェースを実装するときのように)。ありがとう

4

1 に答える 1

23

NSError致命的ではない回復可能なエラー用に設計されています。によってキャプチャされるように設計されている問題は、NSError多くの場合、ユーザー エラー(またはユーザーに提示できるエラー) であり、多くの場合、そこから回復できます (したがって-presentError:およびNSErrorRecoveryAttempting)。また、通常は予期されるまたは予測可能なエラー (ファイルを開こうとするなど) です。ファイルにアクセスできないか、互換性のない文字列エンコーディング間で変換しようとしています)。

NSException潜在的に致命的なプログラマ エラー用に設計されています。これらのエラーは、いくつかの操作を実行するための前提条件を正しくチェックしていないアプリケーションの潜在的な欠陥を示すように設計されています (範囲を超えた配列インデックスにアクセスしようとしたり、不変オブジェクトを変更しようとしたりするなど)。Exception Programming Guideの紹介では、これについて少し説明しています。

于 2012-06-19T12:49:14.643 に答える