Ich bin auf ein ziemlich merkwürdiges kleines Problem gestoßen.
Im folgenden Code kann ich nicht verstehen, wie e
kann sein null
;
try
{
//Some Code here
}
catch (Exception e)
{
//Here e is null
}
Soviel ich weiß, throw null
wird umgewandelt in throw new NullReferenceException()
.
Das Problem scheint mit Multithreading zusammenzuhängen, da das Entfernen eines anderen Threads das Problem ebenfalls zu beheben scheint. Zumindest habe ich dies nur gesehen, wenn der obige Code in einem neuen Thread ausgeführt wird. Das ganze Programm verwendet viele Threads und ist ein wenig komplex.
Wie auch immer, meine Frage ist, wie kann e
Null sein? - Hoffentlich kann die Antwort darauf helfen, die Ursache des Problems zu finden.
Modifier Ich entdeckte es, da es eine NullReferenceException in der Catch-Anweisung verursacht, und mit dem Debugger sehe ich die gleiche Sache.
Bearbeiten 2 Öffnen Sie VisualStudio am nächsten Tag wieder versucht, keine Code-Änderungen und jetzt die gleiche Catch-Phrase ist "genannt", aber dieses Mal e ist nicht Null. Es scheint, es war ein VS-Fehler.