Frage

Ich debugge eine Produktionsanwendung, die eine Vielzahl leerer Catch-Blöcke enthält seufzen:

try {*SOME CODE*}
catch{}

Gibt es eine Möglichkeit, die Ausnahme zu erkennen, wenn der Debugger in der IDE auf den Haken stößt?

War es hilfreich?

Lösung

Wenn Sie in VS im Bereich „Locals“ Ihrer IDE nachsehen, während Sie sich im Catch-Block befinden, sehen Sie so etwas wie „$EXCEPTION“, das alle Informationen für die gerade abgefangene Ausnahme enthält.

Andere Tipps

In Visual Studio – Debuggen -> Ausnahmen -> Aktivieren Sie das Kontrollkästchen neben „Common Language Runtime-Ausnahmen“ in der ausgelösten Spalte

Du kannst schreiben

catch (Exception ex) { }

Wenn dann hier eine Ausnahme ausgelöst und abgefangen wird, können Sie ex untersuchen.

Nein, das ist unmöglich, da in diesem Codeblock steht: „Die Ausnahme ist mir egal.“Sie können eine globale Suche und Ersetzung mit dem folgenden Code durchführen, um die Ausnahme anzuzeigen.

catch {}

mit den folgenden

catch (Exception exc) {
#IF DEBUG
    object o = exc;
#ENDIF
}

Dies bewirkt, dass Ihr aktueller „Nichts tun“-Fang für den Produktionscode erhalten bleibt. Bei der Ausführung im DEBUG-Modus können Sie jedoch Haltepunkte für Objekt o festlegen.

Wenn Sie Visual Studio verwenden, besteht die Möglichkeit, die Ausnahme immer dann abzubrechen, wenn eine Ausnahme ausgelöst wird, unabhängig davon, ob sie nicht behandelt wird oder nicht.Wenn die Ausnahme ausgelöst wird, teilt Ihnen der Ausnahmehelfer (möglicherweise nur VS 2005 und höher) mit, um welche Art von Ausnahme es sich handelt.

Schlag Strg+Alt+E , um das Dialogfeld mit den Ausnahmeoptionen aufzurufen und dieses zu aktivieren.

Können Sie an dieser Stelle nicht einfach eine Ausnahme hinzufügen und sie überprüfen?

@sectrean

Das funktioniert nicht, weil der Compiler den Exception-Ex-Wert ignoriert, wenn ihn nichts verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top