![]() |
Application.Onexception benutzen...
Hallo!
wie benutze ich
Delphi-Quellcode:
habe mich jetzt an den beitrag
Application.OnException
![]() gehalten und sieht nun so aus:
Delphi-Quellcode:
gerade kam wieder irgndwoher so ein blöder fehler, der nicht abgefangen wurde (AccessViolation).
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin try (...) Application.OnException := ExceptGerMeldung; end; procedure TfmMain.ExceptGerMeldung(Sender : Tobject; E : Exception); begin writeLog('APPLICATION FEHLER: '+#13+E.Message); end; gruß |
Re: Application.Onexception benutzen...
Die Zuweisung an Application.OnException muss vor der Exception erfolgen, am besten also schon in FormActivate oder durch TApplicationEvents
|
Re: Application.Onexception benutzen...
Hallo,
vielleicht ist das eine Erklärung: Zitat:
Gruß Hawkeye |
Re: Application.Onexception benutzen...
ich habs jetzt in FormCreate reingepackt.
aber die fehler werden immer noch nicht aufgefangen. :-(
Delphi-Quellcode:
@hawkeye. ja. die idiologie ist gut. aber die fertigstellung wichtiger prozesse steht im vordergrund. ich kann nciht alle destruktoren prüfen. es sind zu viele. (ca 100)
procedure TfmMain.FormCreate(Sender: TObject);
begin Application.OnException := ExceptGerMeldung; end; :( |
Re: Application.Onexception benutzen...
achso. nochetwas. wenn die exception kommt, fängt der debugger sie auch nicht auf. ich lande in der ide als ob das programm richtig geschlossen wurde. :-(
|
Re: Application.Onexception benutzen...
Zitat:
Wie erkennst du eigentlich, dass dein Programm einen Fehler verursachte? Kommt eine Fehlermeldung? Wenn ja welche? Florian |
Re: Application.Onexception benutzen...
hi florian. die fehlermeldung tritt unregelmäßig auf.
nach ein paaar umstellungen dachte ich hätte sie behoben. aber sie ist wieder da. :-( ich habe schon einen anderen thread dazu angefangen. ( ![]() :gruebel: EDIT: habe soeben gesehen, dass die Application.OnException doch noch fehler abfängt. aber halt nicht meinen "problemfehler". ein ganz gerissener ist das.... gruß |
Re: Application.Onexception benutzen...
Ich hänge mich mal hier dran. Ich habe jetzt auch so einen hartnäckigen Fehler. Interessant ist, dass er erst mit Turbo Delphi 2006 kommt, mit welchem ich Delphi 2005 abgelöst haben. Es ist auch immer die selbe Adresse, mit der ich Probleme habe (0000001F bzw. 00000023). Sind das bekannte Adressen ?
Kann das mit privaten Komponenten zu tun haben ? Ich hatte da eine erfunden und Tedit noch einen zusätzlichen Parameter mitzugeben? Gruß Volker |
Re: Application.Onexception benutzen...
Zitat:
Fehler im Programm zu ignorieren, zu verschleiern oder wegzudiskutieren finde ich allerdings "idiotisch". Tip: Zur effektiven Fehlersuche verwende ich ![]() |
Re: Application.Onexception benutzen...
Zitat:
Gruß Volker |
Re: Application.Onexception benutzen...
@Uwe yx-man hat einen 2,5 Jahre alten Thread rausgekramt, darauf brauchst du nicht mehr reagieren :zwinker:
@yx-man (Wie du an Uwe siehst wäre ein neuer Thread, mit evtl. Link hierher, besser gewesen) Zum Problem: Ich habe es noch nicht gang genau erfasst. Du hast also eine Exception (oder dein Programm beendet sich einfach ohne Exception) und er springt an Adresse $1F oder will dorthin zugreifen? Die Adresse ist übrigens nix bekanntes. Ein Fehler mit solchen Adressen hat damit zu tun, dass du auf ein Feld eines Objektektes zugreifst, was nicht existiert. Bsp.: Du willst auf Edit1.name zugreifen. Name ist ein Feld in Tedit eben an der x-ten Stelle, das heißt an Adresse TEdit-Anfang+$1F, normalerweise hat Edit1 einen schönen wert wie $0090605A äö. Dann liegt Edit1.Name bei $0090605A+$1F, ist aber Edit1 nicht existent, dann hat Edit1 häufig (nicht immer!!) den Wert $0000000. Jetzt erkennst du auch, warum er auf $1F zugreifen will. Ähnlich kannst du es dir vorstellen, wenn er mal eine Einsprungadresse für eine Funktion sucht und dann bei $1F landet. |
Re: Application.Onexception benutzen...
Ich habe die Meldung zur zeit hier nicht parat,
sie hieß aber etwas so: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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 by Thomas Breitkreuz