Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sämtliche Fehlermeldungen von der EXE unterdrücken (https://www.delphipraxis.net/109962-saemtliche-fehlermeldungen-von-der-exe-unterdruecken.html)

Chrissi91 10. Mär 2008 17:41


Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Hi,

ich arbeite momentan sehr viel mit Indy-HTTP Komponenten. Im Sourcecode wird sicherlich an die 50x mal darauf zugegriffen. Jetzt habe ich keine Lust 50x Try Except End zu schreiben oder Try Finally End (Ist letztendlich egal, weil Finally oder Except leer bleibt). Kann ich nicht einfach einstellen, das Indy gar keine Fehler ausgeben soll. Konnte dazu keine eigenschaft finden bei der HTTP-Komponente.

Gibt es vielleicht eine Möglichkeit gar keine MessageBoxen durchzulassen?

Apollonius 10. Mär 2008 17:42

Re: Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Schau dir mal Application.OnException an.
Ob Except oder Finally ist übrigens nicht egal, denn Finally verschluckt die Exception nicht.

Chrissi91 10. Mär 2008 17:48

Re: Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Zitat:

Zitat von Apollonius
Schau dir mal Application.OnException an.
Ob Except oder Finally ist übrigens nicht egal, denn Finally verschluckt die Exception nicht.

Super. Hat geklappt! Danke. ;)

Das mit dem Finally wusste ich noch nicht. Aber erscheint logisch.

Cyberbob 10. Mär 2008 17:54

Re: Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Finally ist dafür da, eine aktion auszuführen, sobald der Code innerhalb das Blocks abgearbeitet ist.

try
create
finally
free
end;

so zum Beispiel. Aber andererseits sollte man Fehlermeldungen nicht einfach ignorieren oder unterdrücken sondern dafür sorgen, dass sie nicht auftreten oder entsprechend reagieren beziehungsweise vorarbeiten und sie somit vermeiden.
Was machst du, wenn jetzt wirklich ein Fehler auftreten sollte und du nicht darauf reagieren kannst? Kein schöner Programmierstil. Im OnExeption erreignis solltest du dann doch noch eine Fehlerunterscheidung machen und dein programm entsprechend reagieren lassen. (Bei Fehlern, mit denen du rechnest einfach ignorieren und alle anderen Melden lassen) Besonderst wenn du dein Programm noch testest, da bin ich immer für jede aussagekräftige Fehlermeldung dankbar um weiter forschen zu können.

DeddyH 10. Mär 2008 17:58

Re: Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Zitat:

Zitat von Cyberbob
Finally ist dafür da, eine aktion auszuführen, sobald der Code innerhalb das Blocks abgearbeitet ist.

Nicht ganz richtig, finally sorgt dafür, dass der dort enthaltene Code auch dann ausgeführt wird, wenn innerhalb des try-Blocks eine Exception eintritt oder dieser mit exit verlassen werden soll.

Apollonius 10. Mär 2008 18:00

Re: Sämtliche Fehlermeldungen von der EXE unterdrücken
 
Deine Benutzung von Try-Finally ist aber inkorrekt. Wenn im Konstruktor nämlich eine Exception geschmissen wird, wird Free aufgerufen. Die Instanz-Variable ist aber noch nicht initialisiert, die nil-Prüfung von Free funktioniert nicht, der Destruktor wird aufgerufen, versucht die nicht vorhandene Instanz freizugeben und es gibt eine Invalid-Pointer-Exception.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 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