私たちはシステムを立ち上げており、時々NullReferenceException
メッセージで有名な例外を受け取りますObject reference not set to an instance of an object
。
しかし、ほぼ20個のオブジェクトがあるメソッドでは、オブジェクトがnullであると言うログを持つことは、まったく役に立ちません。あなたがセミナーの警備員であるとき、100人の出席者のうちの1人がテロリストであるとあなたに言うようなものです。それは本当にあなたにはまったく役に立ちません。どの男が脅迫的な男であるかを検出したい場合は、より多くの情報を取得する必要があります。
同様に、バグを削除する場合は、どのオブジェクトがnullであるかを知る必要があります。
今、何かが私の心を数ヶ月の間取りつづけています、そしてそれは:
なぜ.NETから名前、または少なくともオブジェクト参照のタイプが提供されないのですか?。リフレクションまたは他のソースからタイプを理解できませんか?
また、どのオブジェクトがnullであるかを理解するためのベストプラクティスは何ですか?これらのコンテキスト内のオブジェクトのNULL可能性を常に手動でテストし、結果をログに記録する必要がありますか?もっと良い方法はありますか?
更新:
例外The system cannot find the file specified
は同じ性質を持っています。プロセスにアタッチしてデバッグするまで、どのファイルを見つけることができません。これらのタイプの例外はよりインテリジェントになる可能性があると思います。.NETがc:\temp.txt doesn't exist.
その一般的なメッセージの代わりに私たちに伝えることができたらもっと良いと思いませんか?開発者として、私は賛成票を投じます。
new
、クラスのインスタンスを作成するために使用する「役立つ」ヒントが含まれている理由を常に疑問に思っていました。このようなヒントはいつ本当に役立つのでしょうか?