4

数週間前、重要なアプリケーションで初めて Core Data を使い始めました。私を驚かせ、混乱させたものの 1 つは、エラー処理のしくみです。例を挙げると、ファイルの URL を設定したときに参照によって返される NSError オブジェクトを適切に処理するために、Finder でデータ ファイルを「ロック」として設定することを最初に試みました。驚いたことに、nil を返して NSError を設定する代わりに、永続ストア コーディネーターは、基になる NSData からキャッチされない例外を発生させました!

同時に、Core Data ではエラー処理が少し不要な場合もあるようです。たとえば、プログラマーのミス以外にフェッチ要求でエラー処理が必要になる明確な理由はわかりません (ちなみに、私の経験では例外も発生します)。これらの場合、私は NSError 参照ポインターに NULL を渡してきました。

try / catch ブロックと NSError の間で、Core Data をなだめるためのコードを書くのに多くの時間を費やすことができましたが、それについては実用的になりたいので、決して実行されないエラー コードに時間を費やしません。それを念頭に置いて、アプリケーションでのエラー処理にどのようにアプローチしますか? 現実の世界で見た中で、必ず説明する必要のあるエラーは何ですか?

4

1 に答える 1

2

1.4以降Appleが取っているエラー処理の方向性は、アプリケーションが知っておくべきエラーのNSError(上記のような)とプログラミングエラーの例外(QAを超えてはならない)です。

一般に、これらのガイドラインを念頭に置いてプログラムする必要があります。このような問題を見つけた場合は、実際の結果に基づいてハンドラーをプログラムできますが、このパターンは採用しているパターンとは逆なので、すぐにAppleにバグレポートを投稿する必要があります。

バグレポートはhttp://bugreport.apple.com/に投稿できます。ADCアカウントが必要になりますが、無料のアカウントでバグレポートを投稿できます。私は、開発ツールキットのバグや、フレームワークが指定されたデザインパターンと矛盾する動作をするこのような問題に非常に敏感であることがわかりました。

于 2008-11-17T23:34:18.203 に答える