Objective-C の例外に関する多くの記事を読みましたが、それらが何に役立つのかわかりません。エラーが回復可能な場合は、使用しないことをお勧めします (多くのリーク関連の問題のため)。これは次のとおりです: exit(0) (または同様の構造体) を使用する場所ならどこでもそれらを使用してください。これはまた、次のように書かれています。
私は何かを見逃していますか、それとも完全に避けるべき機能ですか?
Objective-C の例外に関する多くの記事を読みましたが、それらが何に役立つのかわかりません。エラーが回復可能な場合は、使用しないことをお勧めします (多くのリーク関連の問題のため)。これは次のとおりです: exit(0) (または同様の構造体) を使用する場所ならどこでもそれらを使用してください。これはまた、次のように書かれています。
私は何かを見逃していますか、それとも完全に避けるべき機能ですか?
これは、AppleのTheObjective-Cプログラミング言語の電子ブックからのものです。
「重要:多くの環境では、例外の使用はごく一般的です。たとえば、ファイルが見つからない場合やデータを正しく解析できなかった場合など、ルーチンが正常に実行できなかったことを示すために例外をスローする場合があります。例外はリソースです。 -Objective-Cで集中的。一般的なフロー制御や単にエラーを示すために例外を使用しないでください。代わりに、メソッドまたは関数の戻り値を使用して、エラーが発生したことを示し、問題に関する情報を提供する必要があります。エラーオブジェクト内。詳細については、エラー処理プログラミングガイドを参照してください。」(Apple The Objective-Cプログラミング言語、第10章、例外処理)
私が理解しているように、他の特定の言語(Java?)のプログラマーは、フロー制御の手段として、例外/試行/キャッチハンドラーを使用してコードをポイ捨てすることに慣れています。これは、Objective-Cでは非常に悪い習慣と見なされます。コードを作成すると、パフォーマンスが大幅に低下するためです。Appleは、例外処理コードを出荷コードから削除することをお勧めします。例外を発生させる状況は、ユーザーエラーではなく、クラッシュ状態を発生させるプログラマーエラーになります。NSErrorオブジェクトは、実行時のエラー処理用に提供されています。
したがって、例外の唯一の用途は、デバッグの補助としてのように見えます。しかし、他の特定の環境から来ているコーダーから、これについてあまりにも多くの悪いアドバイスを見てきました-ですから、そうだと思います。完全に避けるのが最善です。
エラーと例外に関するAppleのメモ、およびこれも参照してください。
Cocoaフレームワークは、通常、例外安全ではありません。一般的なパターンでは、例外はプログラマーエラー専用に予約されており、そのような例外をキャッチしたプログラムはすぐに終了する必要があります。