PDA

Vollständige Version anzeigen : Fehlerbehandlung / Zeile identifizieren?


Sascha Trowitzsch
01.03.2001, 13:33
Für meine DB-Prototypen habe ich eine Fehlerbehandlung für alle Subs und Functions in einem separaten Modul implementiert, die auftretende Fehler mit Angabe der Prozedur, Fehlernumer, -Description (Error-Objekt) etc. kumuliert in eine error.log-Datei schreibt. So kann ich kontrollieren, welche Fehler beim Kunden bei der Arbeit mit der Datenbank aufgetreten sind.
In vielen Fällen reichen die Angaben aber nicht aus, weil ich nicht weiß, in welcher Zeile einer Prozedur der Fehler aufgetreten ist. Darum die Frage:
Sieht jemand eine Möglichkeit, diese Zeilen jeweils per Code zu identifizieren? (Wahrscheinlich nicht, weil die Prozedur dazu in Laufzeit dekompiliert werden müsste?)

Naja, ich frag auch mal bei Mike Kaplan in comp.databases.ms-access nach und berichte, falls dabei was rauskommt.

Thanx erstmal, Sascha

Walther
01.03.2001, 15:36
Hi sascha!

Ich habe vor grauen Urzeiten mal so ein Problem in Algol68 gelöst. Dazu habe ich ein Programm geschrieben, das zwischen je zwei Codezeilen einen Text der Art

GlobaleGröße = Zeilennummer des codes

eingefügt hat.

Diese Zeilennummer habe ich dann in der Fehlerroutine ausgegeben.

Der Nachteil einer solchen Geschichte ist, daß Du jeweils vor Auslieferung oder Test das Programm, das die Identnummern zwischen die Zeilen Schreibt neu aufrufen mußt. Bei Access kommt bestrafend dazu, daß das Laden von .bas Deteien (zumindest nach meiner Trickkiste) nur manuell geht.

Also alles in allem - das ginge zwar aber ich denke das ist nicht ratsam

Viele Grüße aus München
Walther

Sascha Trowitzsch
01.03.2001, 17:53
Hi Walter,

...das ist zumindest eine Anregung! Zwischen alle Zeilen quasi Bookmarks zu setzen, das ginge ganz gut automatisch mit dem CodeCommenter von AccDev. Dadurch könnte zusätzlich der ganze Codeablauf (auch zeitlich) analysiert werde, wie in einem Debugger. Eigentlich ne geile Idee! Macht den Code zwar wohl etwas langsam, ab für die Testversionen wäre es akzeptabel. Endversionen liefere ich natürlich nur debugged aus.

Trotzdem forsche ich mal weiter. Mike Kaplan kennt sich ja mit dem Dekompilieren von Access gut aus, vielleicht gibt's da anoch ne Lösung.

Danke erstmal, Sascha

Sascha Trowitzsch
02.03.2001, 12:37
Hallo, wen's interessiert, ich poste hier mal die Anwort von MGFoster
aus comp.databases.ms-access:

"Hi,

You can put line numbers in the VBA code & use the ERL in the Error
trap code to determine on which line the error occured. E.g.

+++++++++++++++++++++

On error goto err_

1 Debug.Print "hey there"
2 OpenDatabase("nothing here")

exit sub

err_:
If Erl = 2 then
Debug.Print "Error opening Database"
Else
... other error handling
End If

+++++++++++++++++++++ "

...Warum komliziert, wenn's auch einfach geht :-)

Sascha