AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi try..except Gemeinsame Anweisung definieren
Thema durchsuchen
Ansicht
Themen-Optionen

try..except Gemeinsame Anweisung definieren

Ein Thema von Ares · begonnen am 17. Dez 2007 · letzter Beitrag vom 17. Dez 2007
Antwort Antwort
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

try..except Gemeinsame Anweisung definieren

  Alt 17. Dez 2007, 10:49
Hallo!

Ich will in einem try..Except Block gerne verschiedene Exceptions getrennt behandeln und außerdem einige Aktionen ausführen, die bei allen Exceptions notwendig sind. Kann man die gemeinsamen Aktionen in den Except-Block einfügen ohne diese für jede Exception angeben zu müssen?

Delphi-Quellcode:
try
  irgendwas();
except
  TuWasAllgemeines(); // <-- Fehler, wird "on Exception do" verwendet ist dies ungültig.

  on EEinFehler do ...;
  on ENochEinFehler do ...;
Besten Dank
Ares
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: try..except Gemeinsame Anweisung definieren

  Alt 17. Dez 2007, 10:54
Das aktuelle Exception-Objekt ist in der Unit System in der Variable ExceptObject gespeichert ... also etwa so:
Delphi-Quellcode:
try
  irgendwas();
except
  TuWasAllgemeines();

  if ExceptObject is EEinFehler then begin
    ...
  end else if ExceptObject is ENochEinFehler then begin
    ...
  end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: try..except Gemeinsame Anweisung definieren

  Alt 17. Dez 2007, 11:07
ExceptObject ist nicht reentrant und nicht thread-safe, weshalb es sich innerhalb der If Abfragen verändern kann. Darauf hatte jbg schon einmal hingewiesen, als ich auch mit ExceptObject gearbeitet hatte. Eine bessere Lösung wäre folgende:

Delphi-Quellcode:
try
  irgendwas();
except
  on e: exception do
  begin
    TuWasAllgemeines(); // <-- Fehler, wird "on Exception do" verwendet ist dies ungültig.
    
    if e is EEinFehler then
    begin
      ...;
    end
    else if e is ENochEinFehler then
    begin
      ...;
    end;
  end;
end;
  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 07:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz