Wir führen ein System ein und manchmal kommt die berühmte Ausnahme NullReferenceException
bei der Meldung vor Object reference not set to an instance of an object
.
In einer Methode mit fast 20 Objekten ist das Vorhandensein eines Protokolls, das besagt, dass ein Objekt null ist, überhaupt nicht von Nutzen. Es ist, als ob Sie als Sicherheitsbeamter eines Seminars sagen, dass ein Mann unter 100 Teilnehmern ein Terrorist ist. Das nützt dir wirklich gar nichts. Sie sollten mehr Informationen erhalten, wenn Sie feststellen möchten, welcher Mann der bedrohliche Mann ist.
Wenn wir den Fehler entfernen möchten, müssen wir auch wissen, welches Objekt null ist.
Nun, seit einigen Monaten ist mir etwas durch den Kopf gegangen, und das ist:
Warum gibt .NET nicht den Namen oder zumindest den Typ der Objektreferenz an, der null ist? . Kann es den Typ nicht aus der Reflexion oder einer anderen Quelle verstehen?
Was sind die Best Practices, um zu verstehen, welches Objekt null ist? Sollten wir die Nullfähigkeit von Objekten in diesen Kontexten immer manuell testen und das Ergebnis protokollieren? Gibt es einen besseren Weg?
Update:
Die Ausnahme The system cannot find the file specified
hat den gleichen Charakter. Sie können die Datei erst finden, wenn Sie sie an den Prozess anhängen und debuggen. Ich denke, diese Art von Ausnahmen kann intelligenter werden. Wäre es nicht besser, wenn .NET uns c:\temp.txt doesn't exist.
anstelle dieser allgemeinen Nachricht Bescheid geben könnte ? Als Entwickler stimme ich ja.
new
zum Erstellen von Instanzen einer Klasse enthält. Wann hilft so ein Hinweis wirklich?