AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Inline Variablen-Deklaration bei try..except
Thema durchsuchen
Ansicht
Themen-Optionen

Inline Variablen-Deklaration bei try..except

Ein Thema von Der schöne Günther · begonnen am 14. Apr 2014 · letzter Beitrag vom 14. Apr 2014
 
Benutzerbild von himitsu
himitsu

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

AW: Inline Variablen-Deklaration bei try..except

  Alt 14. Apr 2014, 11:44
Ja, ein bissl komisch ist das schon, aber im Prinzip ist das hier nur ein "lokaler" gecasteter Alias für Delphi-Referenz durchsuchenSystem.ExceptObject (aktuelles Exception-Objekt).

Stell es dir als eine Art Makro vor, welches intern die Variablen anlegt, vergleicht und castet.

Delphi-Quellcode:
begin
  try
    // böses Zeug
  except
    on E: EFileNotFoundException do
      E.Kaputt;
    on E: EProgrammerNotFound do
      E.FaulerSack;
    else
      raise;
  end;
end;
Delphi-Quellcode:
begin
  try
    // böses Zeug
  except
    if ExceptObject is EFileNotFoundException then
      EFileNotFoundException(ExceptObject).Kaputt
    else if ExceptObject is EProgrammerNotFound then
      EProgrammerNotFound(ExceptObject).FaulerSack
    else
      raise;
  end;
end;
Delphi-Quellcode:
var
  E: EFileNotFoundException;
  E2: EProgrammerNotFound;
begin
  try
    // böses Zeug
  except
    if ExceptObject is EFileNotFoundException then begin
      E := EFileNotFoundException(ExceptObject);
      E.Kaputt;
    end else if ExceptObject is EProgrammerNotFound then begin
      E2 := EProgrammerNotFound(ExceptObject);
      E2.FaulerSack;
    end else
      raise;
  end;
end;
Delphi legt ja auch so öfters mal "unsichtbare" lokale Variablen an,
sei es bei a := b + c * d , wo das Ergebnis von c*d ja quasi in einer Zwischenvariable landet,
oder der Enumerator einer For-In-Schleife und vorallem beim with .
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Apr 2014 um 11:48 Uhr)
  Mit Zitat antworten Zitat
 

 

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 11:18 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