Geworfene Exceptions finden


Thomas Wölfer
Thomas Wölfer

30. März 2005


Mir ist kürzlich aufgefallen das eine Option im Visual Studio viel zu selten genutzt wird - und zwar die, um den Grund für eine geworfene Exception zu finden.

Das Problem: Irgendwo im Code tritt eine Exception auf die nicht behandelt wird. Resultat: Man steht im Visual Studio hinter der Zeile Application.Run() - und hat eine Fehlermeldung vor sich, die schlicht und ergreifend nur den Exception-Text enthält. Ich habe schon häufiger gesehen das Programmierer in dieser Lage vor einem praktisch 'unlösbaren' Problem standen: Wo genau kam diese Excpeption eigentlich her ist die Frage, die offenbar so schwer zu klären ist.

Als 'Workaround' für die Situation gibt es dann häufig Lösungen, bei denen 'lokale' Codebereiche mit try/catch(Exception) 'abgedichtet' werden. Im 'catch' Block wird dann noch meist eine Meldung per Debug.WriteLine() ausgegeben - und zwar einfach nur dafür, um der tatsächlichen Fehlerstelle 'näher' zu kommen.

Dieses Vorgehen ist aber unsinnig. Der richtige Weg findet sich hinter dem Befehl 'Exceptions' im Menu 'Debug'. Dort schaltet man einfach die Option 'Break into the Debugger' ein. Tritt dann eine Exception auf, so findet man sich im Quelltexteditor an der Stelle wieder, bei der die Exception ausglöst wurde: Exception-Quelle gefunden.

So einfach kann das sein :-)