Autor |
Beitrag |
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Do 11.08.05 18:34
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.
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 552
(D3/D7/D8) Prof.
|
Verfasst: Do 11.08.05 18:49
|
|
LigH
      
Beiträge: 239
Win98SE, Win2000SP4
D7
|
Verfasst: 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
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: 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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 239
Win98SE, Win2000SP4
D7
|
Verfasst: 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. 
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: 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
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 19.08.05 15:10
Titel: Re: Ex
Koller hat folgendes geschrieben: | Was tun? |
bug finden und entfernen.
lg Martin
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: 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'); |
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|