Ist es eine gute Übung, die "Debug.Print" -Anweisungen in Code zu belassen, der in "production" geht?

8

In Excel VBA, ist es eine gute Übung, Debug.Print Anweisungen im Code zu lassen, der in "Produktion" geht? Das ist sehr nützlich, um die Blätter in Echtzeit auf dem Computer des Benutzers zu debuggen, wenn etwas schief geht. Beeinflusst es die Leistung, wenn Visual Studio geschlossen wird? Wenn nicht, was würden Sie empfehlen?

    
Jerome 07.12.2011, 08:41
quelle

2 Antworten

21

Debug.Print-Anweisung hat geringe Performance-Kosten. Also würde ich sie in Schleifen vermeiden, die millionenfach ausgeführt werden. Abgesehen von diesen Fällen halte ich es für angebracht, sie zu behalten.
Sie können auch bedingte Kompilierungsdirektiven ( #if ) in Kombination mit einer Compiler-Konstante ( #const ) verwenden, um sie global ohne Auswirkungen auf die Leistung zu aktivieren / deaktivieren.

%Vor%     
Patrick Honorez 07.12.2011, 08:47
quelle
4

Ich habe normalerweise zwei Versionen; prod ohne Debugging und prod mit Debugging. Zusammen mit der Catchall-Error-Handler-Protokollierung bedeutet dies, dass ich, wenn ein Benutzer Probleme hat, die Debug-Version für sie bereitstellen kann und sie das ausführen können.

Ich habe ein Makro, das ich ausführe, das die debug.print-Anweisungen auskommentiert, so ist es kein echter Wartungsaufwand.

Das Problem mit der ständigen Ausführung einer Debug-Version (und mit Excel VBA ist es normalerweise keine Performance-Sache) ist, dass Ihre App ständig Informationen ausgibt, die sie auch nicht benötigt. In einer Umgebung mit kontrollierten Tabellenkalkulationen kann dies zum Beispiel als eine schlechte Sache angesehen werden.

Für die globale Fehlerbehandlung benötigen Sie immer noch die On Error GoTo-Anweisung für jede Funktion, in der Sie Fehler behandeln möchten. Sie können diese jedoch an eine gemeinsame Funktion übergeben:

%Vor%

Und dann OnError:

%Vor%

Zeigen Sie den Trick

    
dash 07.12.2011 08:50
quelle

Tags und Links