Name einer Sub/ Function herausfinden

HirschnF

Grünschnabel
Hallo zusammen,

in meinen VB-Programmen verwende ich zur Fehlerbehandlung innerhalb einer Prozedur oder Funktion den Befehl on error goto ...
Anschliessend mache ich eine Fehlerbehandlung und schreibe die err.number und err.description in eine LOG-Datei (eigene SUB) und kehre mit resume next zurück.

Nun möchte ich aber im Log-File auch den Namen der Sub/ Function haben um den Fehler besser zuordnen zu können. Hat jemand eine Idee wie das geht?

Gruß Frank
 
Nachdem du die Fehlerbehandlung ja in jeder Prozedur extra durchführen musst, kannst du den Namen ja beim Schreiben des Logfiles berücksichtigen. Ich weiß jetzt nicht genau, wie du das Logfile schreibst, nehme aber mal an, dass du eine Prozedur/Funktion dazu hast, die du dann aufrufst (wäre die einfachste Methode). Bei der Funktion kannst du ja dann den Prozedurnamen übergeben, ansonsten machst du das am besten über einen globale Variable.


Der Doc!
 
ja, das ist richtig was Du sagst. Das habe ich in neueren Programm auch schon so durchgeführt. Nur ist es sehr umständlich bei älteren Programmen dies von Hand zu ändern. Es handelt sich ja nicht nur um fünf Subs oder so :-)

Und wenn ich wüsste wie man den Namen herausbekommt könnte ich die Zeile über Suchen/ Ersetzen im ganzen Code einfach austauschen und fertig wäre das Ganze...:)
 
Den selben Wunsch wie Du hatte ich auch mal, es lässt sich leider nicht realisieren bzw. nur so, wie es Doc bereits geschrieben hat.
 
@HirschnF: Es gäbe schon eine Möglichkeit, das ganze für ältere Programme zu realisieren, es wäre nur etwas Programmierarbeit notwendig.

Man könnte die .vbp/.bas-Dateien einlesen (alles auf einmal und dann nach Zeilen splitten), dann suchst du einfach nach dem Start der nächsten Prozedur/Funktion. Daraus lässt sich dann ganz leicht der Name der Funktion ermitteln. Noch den On Error Goto ...-Teil einfügen, dann einfach von dieser Zeile aus das Ende der Prozedur/Funktion suchen, und vorher die Fehlerbehandlung mit dem Namen sowie vor der Fehlerbehandlung das Exit für die normale Abarbeitung einfügen.

Das ganze wird einfach für alle Prozeduren/Funktionen durchgespielt in der Datei durchgespielt, den einzufügenden Error-Teil kannst du ja z.B. in einer TextBox oder in einer Datei angeben.


Der Doc!
 
das will einfach nicht in meinen Kopf hinein. Bei der Fülle von Funktionen die es gibt, jeden Mist kann man abfragen und an dieser Stelle gibt es keine "einfache Lösung"...

Naja, vielleicht taucht irgendwann doch noch etwas auf. Man soll ja die Hoffung nicht aufgeben :).

Gruß Frank
 
Zurück