J'ai rencontré un petit problème plutôt étrange.Comment l'exception interceptée peut-elle être nulle (pas NullReferenceException)?
Dans le code suivant je ne peux pas comprendre comment e
peut être null
;
try
{
//Some Code here
}
catch (Exception e)
{
//Here e is null
}
Pour autant que je sache, throw null
sera converti en throw new NullReferenceException()
.
Le problème semble être lié au multithreading, car la suppression d'un autre thread semble également le réparer. Ou au moins, je n'ai vu cela que lorsque le code ci-dessus est exécuté dans un nouveau thread. L'ensemble du programme utilise beaucoup de threads et est un peu complexe.
De toute façon ma question est, comment peut e
être nul? - J'espère que la réponse à cela peut aider à trouver la source de ce problème.
Modifier Je l'ai découvert depuis qu'il a provoqué une NullReferenceException dans la déclaration de capture, et en utilisant le débogueur, je vois la même chose.
Edit 2 Ouvrez VisualStudio le lendemain essayé à nouveau, aucun changement de code et maintenant le même slogan est « appelé » mais cette fois-e est pas nul. Il semble que c'était un pépin VS.
Il semble que vous ayez déjà mis le doigt sur le problème. Vous devez obtenir le foulage redressé. –