Entwickler-Ecke
Sonstiges (Delphi) - Wie? Namen der procedure/function in Fehlermeldung
Milhouse2500 - Fr 06.02.04 17:05
Titel: Wie? Namen der procedure/function in Fehlermeldung
Hi
wollte mal fragen ob irgendjemand ahnung hat wie ich den Namen der procedure/function in der ich gerade bin??
z.B. Im Fehlerfall bei einer exception?
Wäre super wenn das jemand wüsste.
So long
Milhouse
Delete - Fr 06.02.04 17:09
Kuck dir in der Hilfe mal Assert an. Liefert es False zurück bekommst du eine Fehlermeldung mit der Zeilennumer, wo der Aufruf fehlgeschlagen ist.
Milhouse2500 - Fr 06.02.04 17:21
Ne so nicht.
Ich würd das ja dann gerne in eine Log datei schreiben.
so von wegen
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| try ...
except on e:Exception do begin log('fehler in methode: '+functionname); end; |
ok?
Aber danke
Gausi - Fr 06.02.04 18:46
mal ne idee in Pseudo-Code
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Procedure MeineTolleProcedur begin try [...] except öffne Log-Datei; füge "Fehler in Methode MeineTolleProzedur" in Datei ein schliesse Log-Datei end;
Procedure MeineGanzTolleProcedur begin try [...] except öffne Log-Datei; füge "Fehler in Methode MeineGanzTolleProzedur" in Datei ein schliesse Log-Datei end; |
Wie man TextDateien öffnet, schliesst und bearbeitet, solltest du hier im Forum finden.
Milhouse2500 - Fr 06.02.04 19:21
Danke für die antworten.
@Gausi
so wäre das ja kein problem, was ich aber gerne möchte, ist das ich den text nicht selber hinschreiben möchte sondern das Delphi von alleine herausfindet in welcher proceudre er gerade steckt.
@CenBells
Ich habe mir das MadExcept nicht weiter angeschaut da es nicht für kommerzielle zwecke(ausser man bezahlt was) nutzen kann. Ich es aber in software einbinden will die verkauft wird.
Hätte jetzt nicht gedacht das es keine richtige möglickeit gibt an den verd... namen von der proc/func zu kommen.
So long
Milhouse
KidPaddle - Fr 06.02.04 19:57
Die JCL enthält Funktionen bereit, mit der man Quellcode, Zeilennummer und Procedure ermitteln kann.
Das geht aber nur, wenn die JCL - Debuginformation mit eingebunden sind. Dazu must Du die Experten installieren und einmal den Menüpunkt Analyze Project im Projekt - Menü aufrufen. Danach kannst Du mit:
Delphi-Quelltext
1:
| function ProcByLevel(const Level: Integer = 0): string; |
Damit bekommst du die Funktion, in der der Fehler aufgetreten ist.
Delphi-Quelltext
1: 2:
| function ModuleByLevel(const Level: Integer = 0): string; function LineByLevel(const Level: Integer = 0): Integer; |
Klar was diese Funktionen bringen, oder? :wink:
Zu finden auf
http://www.delphi-jedi.org/.
Gruß
KidPaddle
Gausi - Fr 06.02.04 21:23
Also ich plädiere weiterhin für meine Methode. Am besten eine Prozedur "LogTo" schreiben, der man den Dateinamen für die Log-Datei übergibt und einen weiteren String mit der entsprechenden Fehlermeldung, oder nur den Namen der Prozedur, von der aus sie aufgerufen wird. Das ist einfach, wenig Aufwand, benötigt keine weiteren Komponenten und man kann es immer wieder benutzen. Was also spricht dagegen?
Gut, man muss den Namen der Prozedur während des Codens per Hand rausfinden (such mal bei gugel danach, wie man das macht :-D), und wenn man den Namen der Prozedur ändert, muss man auch den Funktionsaufruf ändern, aber sonst...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!