Entwickler-Ecke
Sonstiges (Delphi) - Exceptions unterdrücken
Marco D. - Do 11.08.05 18:34
Titel: Exceptions unterdrücken
Gibt es Code, mit dem Man alle möglichen Exceptions unterdrücken kann. Mein Problem ist, dass bei mir eine kommt, das Programm aber ohne sie weiterlaufen würde. Es würde also nicht weiter auffallen.
Delphi-Quelltext
1:
| application.showexceptions:=false; |
So in der Art soll es sein.
Delete - Do 11.08.05 18:37
Die Forensuche hilft auch hier weiter. Aber generell ist es eine schlechte Idee alle Exceptions unterdrücken zu wollen. Wenn was schiefgelaufen ist aufgrund einer falschen Eingabe des Benutzers, sollte man auch eine sinnvolle Fehlermeldung ausgeben.
Um was für eine Exception geht es denn?
Spaceguide - Do 11.08.05 18:49
Application.OnException
LigH - Do 11.08.05 22:35
Macht man so etwas nicht in der Regel mit
Delphi-Quelltext
1: 2: 3: 4: 5:
| try ... except ... end |
oder
Delphi-Quelltext
1: 2: 3: 4: 5:
| try ... finally ... end |
- siehe Delphi-Hilfe?
Kroni - Do 11.08.05 22:52
Try Except ist nicht schön!
Warum sollte man etwas so abfangen, wenn man das ganzen icht per if abfragen machen kann?
soetwas würde ich immer vorziehen!
Slaínte
Kroni
Delete - Do 11.08.05 23:01
Du kannst nicht alles per if abfangen. Was machst du, wenn Klassen Exceptions werfen? Wie willst du die mit if abfangen? Nehmen wir an du lädst was in einen MemoryStream, wenn dir der Speicher knapp wird, bekommst du eine EOutOfMemory Exception. Wie fängst du die per if ab?
LigH - Do 11.08.05 23:10
@ Kroni:
So ein pauschales Abhandeln kann ich nicht gutheißen: Ausnahmefehler haben ihren Sinn, und den sollte man auch nutzen. Nicht alle Probleme lassen sich tatsächlich schon vorher bedenken und vor der Ausführung abfangen, erst recht nicht in einem Mutlitasking-Betriebssystem.
Nur ein Beispiel: Zwischen der Abfrage, ob auf der Platte oder im RAM noch genug Speicher frei ist, und dem Befehl, der den Speicher belegt, kann eine Zeitscheibe eingefügt werden, die einem anderen Programm die Gelegenheit gibt, diesen Platz unerwartet zu belegen.
Noch besser: Im except-Bereich kann ich ohne weiteres auf mehrere verschiedene Ursachen prüfen. Und ich kann durch sinnvolle Strukturierung festlegen, welcher Block in welchem Fall übersprungen werden soll, wenn ein Ausnahmefehler auftritt, und durch geeignete Schachtelung von try/except und try/finally sinnvolle Abschluss-Aktionen festlegen, die trotz oder wegen eines Ausnahmefehlers durchfegührt werden sollen.
Wer diese Möglichkeiten nicht nutzt, der hat entweder festgefahrene Vorurteile, oder zu wenig Erfahrung damit, finde ich. In meiner Praxis habe ich genug Situationen gehabt, in denen es entweder nicht anders ging, oder damit besonders elegant.
Aber es wäre schon sinnvoll, auf die Beantwortung von Luckies Frage zu warten: Besser man weiß, worum es konkret geht.
Marco D. - Do 18.08.05 20:32
Titel: Ex
Hallo Leute,
nichts für ungut aber habt ihr nen Lösungsvorschlag für mich?
Es geht nur darum, einen EConvertError nicht anzuzeigen. Es geht um ein RemoteProgramm für unseren Lehrer. Ich übermittle die Mauspositionen und da tritt ab und zu mal der Fehler auf. Ohne diese Fehlermeldung würde es aber auch funzen. Was tun?
Koller
Martin1966 - Fr 19.08.05 15:10
Titel: Re: Ex
Koller hat folgendes geschrieben: |
Was tun? |
bug finden und entfernen.
lg Martin
retnyg - Fr 19.08.05 16:36
Luckie hat folgendes geschrieben: |
Nehmen wir an du lädst was in einen MemoryStream, wenn dir der Speicher knapp wird, bekommst du eine EOutOfMemory Exception. Wie fängst du die per if ab? |
Delphi-Quelltext
1:
| if freemem < filesize then showmessage('zuwenig ram'); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!