AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Kleiner Exkurs zu Exceptions (try finally/except)
Tutorial durchsuchen
Ansicht
Themen-Optionen

Kleiner Exkurs zu Exceptions (try finally/except)

Ein Tutorial von MaBuSE · begonnen am 7. Feb 2020 · letzter Beitrag vom 7. Feb 2020
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Kleiner Exkurs zu Exceptions (try finally/except)

  Alt 7. Feb 2020, 08:27
Mir ist die Sache durch die Quellcodekommentare aufgefallen.

Deine Beispiel erscheint mir aber etwas seltsam. (Randnotiz, wieso kann man das nicht zitieren?)

Zitat:
...
try
i := IntToStr(s);
except
WriteLn('Es ist ein Fehler aufgetreten. s ist kein Integer);
end;
...
Es würde wohl einen Kompilerfehler ergeben. Das fehlende Anführungszeichen deutet auch darauf hin, dass Du es nur getippt und nicht laufen lassen hast.

So oder so:
Bei
intToStr würde man wohl eher
s := IntToStr(i);

verwenden und das Beispiel würde Sinn ergeben, wenn man wie oben irgendwo die Funktion StrToInt() verwendet, was Du vermutlich eigentlich machen wolltest. Hier können prima Laufzeitfehler auftreten, die als Opfer für Try Except herhalten können:

i := StrToInt(s);
Gruß, Jo

Geändert von jobo ( 7. Feb 2020 um 08:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Kleiner Exkurs zu Exceptions (try finally/except)

  Alt 7. Feb 2020, 08:30
Mir ist die Sache durch die Quellcodekommentare aufgefallen.
Deine Beispiel erscheint mir aber etwas seltsam. ...
Es würde wohl einen Kompilerfehler ergeben. Das fehlende Anführungszeichen deutet auch darauf hin, dass Du es nur getippt und nicht laufen lassen hast.
Danke
Du hast absolut Recht. Ich hab hier gerade kein Delphi zur Hand.

Ich hab das mal schnell korrigiert
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE ( 7. Feb 2020 um 08:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.476 Beiträge
 
Delphi 12 Athens
 
#3

AW: Kleiner Exkurs zu Exceptions (try finally/except)

  Alt 7. Feb 2020, 08:36
Die CLI-Vorlage hat IMHO auch schon immer eine kleines Fehlerchen.
Wenn die Anwendung direkt und nicht aus einer Konsole mit Output-Stream gestartet wurde, dann sollte nach dem Except+WriteLn(E.Message) noch ein ReadLn rein, denn sonst kann doch niemand die Exception lesen


Schade ist tzwar, dass man Try/Finally/Except bzw. Try/Except/Finally nicht "direkt" kombinieren kann (also ein Try gefolgt von mehreren Except/Finaly).
Aber naja.

Indirekt geht es, allerdings nur zum Antzeigen der Exception, bzw. zum zusätzlich darauf reagieren.
Zitat:
try
...
finally

E := System.ExceptObject as Exception; // analog zum "on E: Exception" im except, aber das implizite "raise;" bleibt drin
...

end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Feb 2020 um 08:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Kleiner Exkurs zu Exceptions (try finally/except)

  Alt 7. Feb 2020, 08:44
Die CLI-Vorlage hat IMHO auch schon immer eine kleines Fehlerchen.
Wenn die Anwendung direkt und nicht aus einer Konsole mit Output-Stream gestartet wurde, dann sollte nach dem Except+WriteLn(E.Message) noch ein ReadLn rein, denn sonst kann doch niemand die Exception lesen
Nein

Du kannst auch aus einer GUI Anwendung jederzeit mit AllocConsole; eine Console öffen, um mit Write darin zu schreiben.
Mach ich oft für Debugausgaben
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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