![]() |
Exceptions auswerten
Hi,
um evtl. auftretende Exceptions leicht auswerten zu können, bin ich dabei, einen Fehlerreport zu basteln. Damit dieser zuverlässig ist, habe ich mir gedacht, ich weise in jeder Prozedur/Funktion einer globalen Variablen den Namen der Prozedur zu. Doch ist das irgendwie nicht sehr zuverlässig, da bei folgendem Beispiel, die Variable den Namen der falschen Prozedur enthällt:
Delphi-Quellcode:
Im Forum habe ich ein paar Threads dazu gefunden, doch sind das noch unzuverlässigere Methoden (Bsp:
procedure xyz;
begin error_proc_fct := 'xyz'; Do_something; // Aufruf einer anderen Peozedur // Hier ist der Variableninhalt dann 'Do_something' und nicht, wie es sein sollte 'xyz' // tritt hier ein Fehler auf, bekomme ich logischerweise die falsche Prozedur übermittelt. end; ![]() Ich möchte weder Madshi noch Eurekalog nutzen. Die Jedis habe ich installiert, falls es da was zuverlässiges gegen sollte. Was könntet ihr mir da empfehlen? |
Re: Exceptions auswerten
Baue dir gleich einen kompletten Callstack, sodass du z.B. schreibst:
Code:
Wenn du dann DoSomething audfufst, kommt noch DoSomething ans Ende:
Button1Click
xyz
Code:
und bei abschluss einer funktion einfach die letzte Zeile wieder entfernen ;)
Button1Click
xyz DoSomething So weißt du auch gleich, wie dein Programm dahin gelangt ist ;) |
Re: Exceptions auswerten
Ähm, das verstehe ich nicht ganz. Könntest du das bitte etwas genauer erläutern? :angle2:
Nachtrag: Achso, nun hab ich's doch verstanden, hm, das wäre eine Möglichkeit, wenn auch eine, die rechts aufwändig ist, danke. |
Re: Exceptions auswerten
Du machst nicht nur eine Variable, sondern eine Stringlist, die als Callstack dient.
Jede Funktion/Prozedur schreibt am anfang ihren Namen hinen, also quasi Callstack.Add('xyz'); und löscht am Ende den letzten Eintrag. Wenn du dann hast:
Delphi-Quellcode:
Alee Klarheiten beseitigt ? :mrgreen:procedure Do_something; begin Callstack.Add ('Do_something'); // mach was // hier ist er dann Button1Click; xyz; Do_something; Callstack.DeleteLast; end; procedure xyz; begin Callstack.Add ('xyz'); Do_something; // Aufruf einer anderen Peozedur // wenn hier was passiert ist er wieder Button1Click; xyz; Callstack.DeleteLast; end; procedure Button1Click; begin Callstack.Add ('Button1Click'); xyz; Callstack.DeleteLast; end; |
Re: Exceptions auswerten
Zitat:
Stimmt schon, das müste gehen. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz