Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi EConvertError Exception mit Compilerschalter unterdrücken? (https://www.delphipraxis.net/50602-econverterror-exception-mit-compilerschalter-unterdruecken.html)

SubData 28. Jul 2005 08:01


EConvertError Exception mit Compilerschalter unterdrücken?
 
Guten Morgen ^^

Gibt es eine Möglichkeit bestimmte Exceptions (z.B.: EConvertError) via Compilterschalter für einen kleinen Bereich zu unterdrücken.
Eine Funktion in meinem Programm liefert manchmal einen ConvertError zurück, was auch in Ordnung bzw. normal ist, und ich möchte die Exception, die dieser Abschnitt wirft in soweit unterdrücken, dass die Anwendung nicht angehalten wird.

Die Unterdrückung soll aber nur für den Programmteil erfolgen und nicht für das ganze Projekt.

Ich danke für jede Hilfe :>

cell 28. Jul 2005 08:04

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
für das ganze projekt wüsste ich es, aber du kannst auch da ´drinnen nachschauen ob das für einen bestimmten abschnitt geht, zwar unter:
Tools-->Debug-Optionen-->Sprach-Exceptions und dann auf hinzufügen und die Exception hineinschreiben

Bernhard Geyer 28. Jul 2005 08:08

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Zitat:

Zitat von SubData
Eine Funktion in meinem Programm liefert manchmal einen ConvertError zurück, was auch in Ordnung bzw. normal ist, und ich möchte die Exception, die dieser Abschnitt wirft in soweit unterdrücken, dass die Anwendung nicht angehalten wird.

Dann mach doch einen try...except-Abschnitt um den Programmteil rum.

SubData 28. Jul 2005 08:18

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Nein cell, das geht nicht...

Der Vorschlag von dir funktioniert leider auch nicht, Bernhard.
Wenn eine Exception geworfen wird und die Anwendung aus der IDE gestartet wird, hält der Debugger die Anwendung trotzdem an. Ich möchte aber nur für diesen kleinen Bereich das Anhalten des Debuggers unterdrücken

Edit: Tippfehler...

Die Muhkuh 28. Jul 2005 08:19

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Hi,

dass der Debugger anhält ist ja klar, aber wenn du das Programm so startest (ohne Debugger), dann kommt auch keine Meldung.

barf00s 28. Jul 2005 08:21

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
exceptions in den optionen zu deaktivieren haltich auch für bedenklich -
stattdessen einfach das program von außerhalb starten und gut -

dazu sind exceptions ja schließlich da

SubData 28. Jul 2005 08:24

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Ich möchte aber das Programm nicht von aussen starten, da ich es ja debuggern will.
Nur eben nicht an dieser einen Stelle, da der "Fehler" da mir bekannt und vollkommen in Ordnung ist.
Die Exception selbst wird ja auch abgefangen und behandelt, ich möchte nur einfach nicht, dass der Debugger das Programm anhält.

Geht das oder nicht? Gibt es dafür nen Compiler-Schalter? Hab leider keinen gefunden :/

bzw. Kann man Exceptions überhaupt mit einem Compiler-Schalter vollständig unterdrücken?

Ich stimme übrigens barf00s zu: Exceptions komplett in den Optionen zu unterdrücken, halte ich ebenfalls für nicht sonderlich sinnvoll...

RavenIV 28. Jul 2005 08:25

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Zitat:

Zitat von SubData
Eine Funktion in meinem Programm liefert manchmal einen ConvertError zurück, was auch in Ordnung bzw. normal ist, und ich möchte die Exception, die dieser Abschnitt wirft in soweit unterdrücken, dass die Anwendung nicht angehalten wird.

so wie es sich anhört, weisst du, welche exception du bekommst.
also kannst (solltest) die diese mit try..except abfangen und behandeln.
einfach abschalten ist der falsche weg, es werden nur symptome behandelt.
<ironie>
wäre ungefähr so:
du schlägst dir mit dem hammer auf den finger.
der finger wird blau und tut weh.
damit es nicht mehr weh tut, schneidest du den nerv durch, der den schmerz ans gehirn weiterleitet.
</ironie>

also: exceptions nicht ignorieren oder abschalten, sondern abfangen und behandeln.
das einzige was erlaubt ist: exceptions innerhalb der delphi-GUI ausschalten, damit der debugger nicht ständig am motzen ist.
in der applikation sind die exceptions aber dann immernoch vorhanden.

gruessle

Die Muhkuh 28. Jul 2005 08:27

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Ich glaube unter Tools -> Debugger, gibts irgendwo nen Kreuzchen, dass "Bei Delphi-Exception anhalten" oder so ähnlich heißt.

SubData 28. Jul 2005 08:30

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Zitat:

Zitat von RavenIV
so wie es sich anhört, weisst du, welche exception du bekommst.

Ja, ein EConvertError für ein ungültiges Datum...

Zitat:

Zitat von RavenIV
also kannst (solltest) die diese mit try..except abfangen und behandeln.

Wird sie auch... Aber der Debugger soll nicht anhalten...

Zitat:

Zitat von RavenIV
einfach abschalten ist der falsche weg, es werden nur symptome behandelt.

In dem Fall nicht, da der Fehler auftreten darf (Falls zu dem Zeitpunkt ein bestimmter Datumswert noch nicht vorhanden ist, was sich aber nicht auf die Software auswirkt, sondern nur bei der Initialisierung eine Rolle spielt und später auch ausgeglichen wird)

Zitat:

Zitat von RavenIV
<ironie>
wäre ungefähr so:
du schlägst dir mit dem hammer auf den finger.
der finger wird blau und tut weh.
damit es nicht mehr weh tut, schneidest du den nerv durch, der den schmerz ans gehirn weiterleitet.
</ironie>

:mrgreen:

Zitat:

Zitat von RavenIV
also: exceptions nicht ignorieren oder abschalten, sondern abfangen und behandeln.

Ich behandel sie ja...

Zitat:

Zitat von RavenIV
das einzige was erlaubt ist: exceptions innerhalb der delphi-GUI ausschalten, damit der debugger nicht ständig am motzen ist.

Genau das will ich ja... Aber nur für einen bestimmten Teil :>

Zitat:

Zitat von RavenIV
in der applikation sind die exceptions aber dann immernoch vorhanden.

Stimmt nicht, wenn ich das Ding nicht im Debugger starte, wird keine Exception Meldung geworfen, da der Fehler ja "normal" ist und auch kein wirklicher Fehler...

barf00s 28. Jul 2005 08:31

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
hmm dann drück doch einfach wieder f9 wenn die exception kam (und vllt sogar behandelt wurde) dann gehts weiter

SubData 28. Jul 2005 08:33

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Zitat:

Zitat von Spider
Ich glaube unter Tools -> Debugger, gibts irgendwo nen Kreuzchen, dass "Bei Delphi-Exception anhalten" oder so ähnlich heißt.


Versteht mich keiner? -heul-

Delphi-Quellcode:

begin
  try
    Funktion1...
    Funktion2...
    {$EXCEPTIONS AUS}
    Funktion3...
    {$EXCEPTIONS AN}
    Funktion4...
  except
    on E: Exception do
      CreateExcept('Blah', E.Message, E.ClassName);
    end;
  end;
end;

SubData 28. Jul 2005 08:41

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Zitat:

Zitat von barf00s
hmm dann drück doch einfach wieder f9 wenn die exception kam (und vllt sogar behandelt wurde) dann gehts weiter

Mir scheint als würde mir garnichts anderes übrig bleiben :/

Vjay 28. Jul 2005 08:44

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Doch ich verstehe dich, aber es ist glaube ich nicht möglich.

Siehst du deinerseits eine Möglichkeit die Exception zu verhindern?
Sprich: Prüf vorher manuell ob der Wert korrekt ist, somit bekommst du auch keine Exception :) So wäre dein Problem indirekt gelöst...

SubData 28. Jul 2005 08:56

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Nein die Exception kann ich nicht verhindern, da sie aus einer DLL kommt, dessen Source ich nicht bearbeiten darf.
Ich werd dann wohl damit leben müssen :roll:

Aber danke trotzdem für eure Hilfe :)

freak4fun 28. Jul 2005 09:06

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Hallo :hi:,
du kannst doch, nachdem der Fehler aufgetreten ist, einfach weitermachen. :gruebel:
Debugen heißt doch Haltepunkt setzen und mit F8/F7 durch das Programm gehen und gucken, was passiert, oder?

MfG
freak

Vjay 28. Jul 2005 09:10

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Warum sollte er für einen gewollten Fehler immer wieder weiter drücken... In der Indyhilfe steht auch, wie man die Connection-Closed-Gracefully-Exceptions in der IDE ausstellt, da diese sonst unglaublich nervig sind.

Aber SubData, ich würde die Exception in der IDE unterdrücken, aus folgendem Grund:

- Sie ist nervig
- Wenn woanders eine solche Exception ausserhalb eines try...except auftritt wird diese 1 zu 1 an deine App weitergereicht und diese sich mit einer Meldung verabschieden. Wenn dies passiert schaltest du die Unterdrückung ab (drückst 1x F9 um die eine zu umgehen) und suchst den Fehler. Danach schaltest du die Unterdrückung wieder ein.

Eine bessere Lösung wird wohl nicht möglich sein.

Gruss

SubData 28. Jul 2005 09:12

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
Ja genau das werde ich auch tun...

Die Exception global unterdrücken ist auch kein Problem, mir gings halt nur um diese Stelle, da ich ungern Fehler unterdrücke...

barf00s 28. Jul 2005 09:22

Re: EConvertError Exception mit Compilerschalter unterdrücke
 
/!\ Merke /!\
exception <> fehler

:)


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