AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OnTerminate wird nicht ausgeführt

Ein Thema von GreenHorn3600 · begonnen am 15. Aug 2009 · letzter Beitrag vom 16. Aug 2009
Antwort Antwort
Seite 2 von 2     12   
Muetze1
(Gast)

n/a Beiträge
 
#11

Re: OnTerminate wird nicht ausgeführt

  Alt 15. Aug 2009, 18:26
... und entferne unbedingt die Verwendung von ExceptObject in deinem Exception Handler der Execute Methode. Du hast keine Ahnung in Multi-threaded Applications welches Exceptionobjekt du da gerade in der ein einzigen globalen Variable hast. Es gibt nicht umsonst das On E: Exception do Konstrukt.

Auch ist EAbort eine stille Exception und schlägt so nicht im Exceptionhandler´auf - was ja die Besonderheit von stillen Exceptions ist.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: OnTerminate wird nicht ausgeführt

  Alt 15. Aug 2009, 22:11
ExceptObject verwendet zumindest in Delphi 2006 die threadspezifische Variable RaiseListPtr - ich meine allerdings auch, dass die on-Klausel hier geeigneter ist.
Was meinst du mit "stille Exceptions schlagen nicht im Exceptionhandler auf"? In TApplication.HandleMessage muss auch explizit auf EAbort geprüft werden.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: OnTerminate wird nicht ausgeführt

  Alt 15. Aug 2009, 23:51
Zitat von Apollonius:
In TApplication.HandleMessage muss auch explizit auf EAbort geprüft werden.
Aber auch nur da, da genau dort die Entscheidung gefällt wird (im Default Handler), dass die von EAbort abgeleiteten Exceptions stille Exceptions sind.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: OnTerminate wird nicht ausgeführt

  Alt 16. Aug 2009, 18:43
Ich verstehe deinen Punkt nicht. Da er die Exception aus dem Thread an ShowException und nicht an HandleException weiterreicht, muss er doch selbst auf EAbort prüfen, oder?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#15

Re: OnTerminate wird nicht ausgeführt

  Alt 16. Aug 2009, 23:27
Zitat von Apollonius:
Ich verstehe deinen Punkt nicht. Da er die Exception aus dem Thread an ShowException und nicht an HandleException weiterreicht, muss er doch selbst auf EAbort prüfen, oder?
Ich habe es eben unter RAD2007 ausprobiert und musste feststellen, dass sich das Verhalten vllt. gegenüber geändert hat. Ich war der Meinung das alle stillen Exceptions (also Ableitungen von EAbort) nicht in den Exception Handlern aufschlagen. Dies hat sich unter RAD2007 nicht bestätigt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:14 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