# Thursday, March 01, 2007

Ich habe bei einem Projekt gerade ein "Problem", dass ich nicht wirklich nachvollziehen kann. Hier mal ein Codeschnipsel:

FileInfo fi = new FileInfo(licName);

if (fi.Exists == false)
{   
      throw new Exception("Die Lizenzdatei konnte nicht gefunden werden.");
}

fi.Exists liefert mir true zurück, trotzdem spring er in die Klammer und markiert die Exception!

Wenn ich anstatt des throw einfach eine Dummy-Zeile (z.B. string s="";) einsetze, dann geht er wie erwartet nicht in die Klammer. Scheint also tatsächlich was damit zu tun zu haben, das ich dort eine Exception feuere. Ich hab erst gedacht, das Visual Studio mal wieder aus dem Tritt gekommen ist, also Rechner neu starten! Der Fehler passiert aber auch nach einem Neustart immer noch.


Ich hab spaßeshalber die Bedingung mal auf true gesetzt und eine Dummy-Zeile eingebaut:

if (fi.Exists == true)
{   
      string s = "";
      throw new Exception("Die Lizenzdatei konnte nicht gefunden werden.");
}

In diesem Fall springt der Debugger richtigerweise auf die erste Zeile. Setze ich die Bedingung auf false, springt er direkt in die zweite Zeile zur Exception. Die Exception wird zwar nicht wirklich gefeuert, aber der Debugger markiert mir die Zeile.

Hat jemand dafür eine Erklärung?

NACHTRAG: Ich habe gerade mal eine weitere Dummy-Zeile vor der Exception eingefügt. Nun funktioniert es wie erwartet!?!