AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Application.Onexception benutzen...
Thema durchsuchen
Ansicht
Themen-Optionen

Application.Onexception benutzen...

Ein Thema von mojo777 · begonnen am 5. Jun 2006 · letzter Beitrag vom 14. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Application.Onexception benutzen...

  Alt 5. Jun 2006, 13:04
Hallo!
wie benutze ich
Application.OnException habe mich jetzt an den beitrag DP_HIER
gehalten und sieht nun so aus:

Delphi-Quellcode:
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;
gerade kam wieder irgndwoher so ein blöder fehler, der nicht abgefangen wurde (AccessViolation).

gruß
Muh macht die kUh
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#2

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 13:12
Die Zuweisung an Application.OnException muss vor der Exception erfolgen, am besten also schon in FormActivate oder durch TApplicationEvents
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 13:21
Hallo,

vielleicht ist das eine Erklärung:

Zitat von Delphi-Hilfe:
Mit OnException werden nur Exceptions behandelt, die während der Bearbeitung von Botschaften auftreten. Exceptions, die vor oder nach der Ausführung der Methode Run der Anwendung auftreten, erzeugen keine OnException-Ereignisse.
Wie SirThornberry dir schon im anderen Thread gesagt hat: du solltest den Fehler nicht verbergen sondern versuchen, ihn einzukreisen. Da er offenbar nur beim Beenden des Programms auftritt, solltest du alle Behandlungsroutinen für OnDestroy prüfen. Vielleicht liegt die Ursache für das Problem ja auch im FINALIZATION-Abschnitt einer Unit.

Gruß Hawkeye
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#4

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 15:33
ich habs jetzt in FormCreate reingepackt.
aber die fehler werden immer noch nicht aufgefangen.
Delphi-Quellcode:
procedure TfmMain.FormCreate(Sender: TObject);
begin
Application.OnException := ExceptGerMeldung;
end;
@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)

Muh macht die kUh
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#5

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 15:50
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.
Muh macht die kUh
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 15:52
Zitat:
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)
Die Zeit wirst du investieren müssen ... ich behebe Probleme immer direkt nach ihrem auftreten, da man sonst die Übersicht verliert und den Fehler nicht mehr einkreisen kann, da es zu viele Möglichkeiten gibt.

Wie erkennst du eigentlich, dass dein Programm einen Fehler verursachte? Kommt eine Fehlermeldung? Wenn ja welche?

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#7

Re: Application.Onexception benutzen...

  Alt 5. Jun 2006, 16:01
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. (click) hier wollte ich nur die benutzung von Application.OnException ausfragen.




EDIT:
habe soeben gesehen, dass die Application.OnException doch noch fehler abfängt. aber halt nicht meinen "problemfehler".
ein ganz gerissener ist das....


gruß
Muh macht die kUh
  Mit Zitat antworten Zitat
yx-man

Registriert seit: 23. Sep 2005
26 Beiträge
 
#8

Re: Application.Onexception benutzen...

  Alt 14. Jan 2009, 06:50
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#9

Re: Application.Onexception benutzen...

  Alt 14. Jan 2009, 07:08
Zitat von mojo777:
die idiologie ist gut.
Es heißt "Ideologie" (kommt aus dem Griechischen und heißt Ideenlehre).
Fehler im Programm zu ignorieren, zu verschleiern oder wegzudiskutieren finde ich allerdings "idiotisch".

Tip: Zur effektiven Fehlersuche verwende ich madexcept.
Uwe Raabe
  Mit Zitat antworten Zitat
yx-man

Registriert seit: 23. Sep 2005
26 Beiträge
 
#10

Re: Application.Onexception benutzen...

  Alt 14. Jan 2009, 07:27
Zitat:
Fehler im Programm zu ignorieren, zu verschleiern oder wegzudiskutieren finde ich allerdings "idiotisch".
Der Meinung bin ich auch, ich möchte Ihn ja auch finden. Aber wie finde ich einen Fehler, der nur sporadisch auftritt und nur CPU-Adressen sagt. Ich hatte es gestern sogar einmal geschafft, dass das Programm mir im Debugmodus an der betreffenden Stelle anhielt. Leider kam ich hier mit dem Asssemblercode auch nicht weiter, da ich nirgendwo einen Hinweis gefunden habe, worum es sich handelt bzw. wer hier eine nicht mehr exisitierende Adresse aufruft. Deshalb die Frage nach 0000001F, weil das ja wie eine allgemeine Adresse aussieht. Ich glaube, der Abbruch kamm aus "RaiseExecption". Aber das es sich um eine Exception handelt, wußte ich auch schon vorher.

Gruß Volker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz