Hallo,
ich habe mein Programm so konzipiert, dass ich in bestimmten Fehlersituationen eine eigens definierte Exception werfe, die ich an anderer Stelle auswerte.
throw new ParserException(false, "Nicht unterstützter Befehl: ", (string)cmdParams[cmdParams.Count-1]);
...
catch(ParserException pE){...}
Wenn ich mein Programm frisch gestartet habe und im Programm das erste mal eine Exception geworfen wird, werden ca 1 bis 2 Sekunden (auf nem 3GHz- PC) verbraten. Jedes weitere Werfen der gleichen Exception verbraucht keine erkennbare Zeit. Auch wenn ich mein Programm offen lasse und den Ablauf (Parsen von Dateien), in dem Exceptions geworfen werden neu starte, tritt das Performanceproblem nicht mehr auf.
Dass das Werfen von Exceptions Performanceprobleme verursachen kann, hab ich schon gelesen, aber dass es beim einmaligen Werfen gleich über ne Sekunde verzögert, scheint mir unlogisch. Auch, dass nur beim ersten Werfen Zeit verbraucht wird leuchtet mir nicht ein.
Hat jemand ne Idee, woran das Problem liegen kann, oder wie man eigene Exceptions optimieren kann?