Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nur bestimmte exceptions abfangen/ignorieren (https://www.delphipraxis.net/205001-nur-bestimmte-exceptions-abfangen-ignorieren.html)

himitsu 22. Jul 2020 15:05

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Ich bin mir fast sicher dass selbst D6, und noch viel älter, bis bestimmr mindestens Turbo Pascal, all diese Syntaxen verstehen sollte.

Abgesehn von dem Beispiel-Typ, wo vielleicht nur die Unit fehlt, aber sieht du wie gut eine Syntaxprüfung ist, wenn der Name nicht als String vorkommt. :zwinker: :angle:

DeddyH 22. Jul 2020 15:07

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Wenn man nun noch die Unit einbindet, in der der entsprechende Exception-Typ deklariert ist, dann funktioniert das auch.

Uwe Raabe 22. Jul 2020 15:09

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Zitat:

Zitat von himitsu (Beitrag 1470093)
Delphi-Quellcode:
try
  ...
except
  on E: EIBInterBaseError do
    ; // nichts
  on E: Exception do
    raise;
end;

Warum so kompliziert?
Delphi-Quellcode:
try
  ...
except
  on E: EIBInterBaseError do
    ; // nichts
end;
Solange der except-Block nicht ganz leer ist, wird alles was nicht explizit behandelt wird einfach weitergereicht.

dummzeuch 22. Jul 2020 17:41

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Zitat:

Zitat von himitsu (Beitrag 1470111)
Ich bin mir fast sicher dass selbst D6, und noch viel älter, bis bestimmr mindestens Turbo Pascal, all diese Syntaxen verstehen sollte.

Da es Exceptions erst ab Delphi gibt (war es Delphi 2? Ich glaube in 16 Bit Windows gab es sie noch nicht, also nicht in Delphi 1), wage ich das mal zu bezweifeln. ;-)

Aber im Prinzip hast Du recht: Jedes Delphi sollte diese Syntax verstehen.

Uwe Raabe 22. Jul 2020 18:11

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Zitat:

Zitat von dummzeuch (Beitrag 1470127)
Da es Exceptions erst ab Delphi gibt (war es Delphi 2? Ich glaube in 16 Bit Windows gab es sie noch nicht, also nicht in Delphi 1), wage ich das mal zu bezweifeln. ;-)

Exceptions gab es wohl auch schon in Delphi 1, wie man diesem Artikel von Allen Bauer entnehmen kann:
Zitat:

I remember cringing when Anders Hejlsberg demoed the exception handling capabilities by dereferencing a nil pointer. I had done all the work to map the hardware exceptions (via. the Windows 3.x toolhelp.dll) into language exceptions. Windows 3.x at the time had no OS supported exception mechanism. Remember all those “General Protection Fault” dialogs? brrrrr...
Auch nett der Kommentar von Nick Hodges:
Zitat:

When Anders referenced that nil PChar, there was a literal hush in the room, and when it didn't crash, putting up an exception instead, the place went crazy.

The MS people in the back were carried out on stretchers, I think from hyperventilating. ;-)

himitsu 22. Jul 2020 18:24

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Jo, ab Delphi 2 ist es 32 Bit
und ab WinNT gab es dann nochmal einen größeren Sprung, wo sich nach 9x/ME nochmal alles änderte, vor allem in der Speicherveraltung.

Ich geb zu, meine kurzen Ausflüge vorm Delphi ins TurboPascal/DOS ... da hatte ich auf sowas wie Fehlerbehandlung noch garnicht geachtet (wusste noch nichtmal was das ist :oops:)
Aber ich hätte schon erwartet, dass es zumindestens im 32-Bit-Windows bereits Exceptions gab, inkl. Try-Finally/Except, fast so ähnlich wie heute.

kagi3624 23. Jul 2020 07:26

AW: Nur bestimmte exceptions abfangen/ignorieren
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1470113)
Zitat:

Zitat von himitsu (Beitrag 1470093)
Delphi-Quellcode:
try
  ...
except
  on E: EIBInterBaseError do
    ; // nichts
  on E: Exception do
    raise;
end;

Warum so kompliziert?
Delphi-Quellcode:
try
  ...
except
  on E: EIBInterBaseError do
    ; // nichts
end;
Solange der except-Block nicht ganz leer ist, wird alles was nicht explizit behandelt wird einfach weitergereicht.

Ok, ich hab die pas gefunden wo diese Errordifinition steht, jetzt funktioniert es.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz