例外の使用とNSErrorの使用に関する Apple の推奨事項を読みました。
また、例外を使用するかどうかを議論する同様のスタックオーバーフローの質問をいくつか読みました。
iOS のエラー通知/処理方法として例外を使用することの長所と短所を理解しようとしています (率直に言って、私は Apple の文に満足していません (何をすべきかは述べていますが、なぜそうするべきかは述べていません):
範囲外のコレクション アクセス、不変オブジェクトの変更の試行、無効なメッセージの送信、ウィンドウ サーバーへの接続の切断など、プログラミングまたは予期しないランタイム エラーのために、例外の使用を予約する必要があります。通常、実行時ではなくアプリケーションの作成時に例外を除いて、この種のエラーに対処します。
例外使用の利点:
エラー生成コードとエラー処理コードの間のすべての中間コードを変更する必要はありません
メソッドの引数と戻り値を汚染しません
短所:
手動で管理されるすべてのメモリ コードについては、特に注意する必要があります (リソースが確実に解放されるように、自動解放オブジェクトでラップする必要があります)。
コードとフレームワークの境界に注意する必要があります。例外がコードから離れた場合、問題が発生する可能性があります (フレームワークがメモリを手動で管理する可能性があるため)。
何か見逃しましたか?追加の短所/長所はありますか?
ライブラリのようなコードでは例外が問題ないように見えます (非常に大量の密にパッケージ化されたコードがあり、外部システム/フレームワークとあまり通信しない場合)。また、積極的にコードに例外を使用するのは難しいようです。他のフレームワークと相互作用します。
あなたの経験はこの理論を証明していますか?
この件に関する追加情報をいただければ幸いです。