AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt auf Übergabe prüfen.

Ein Thema von Popov · begonnen am 20. Jan 2014 · letzter Beitrag vom 20. Jan 2014
 
Popov
(Gast)

n/a Beiträge
 
#7

AW: Objekt auf Übergabe prüfen.

  Alt 20. Jan 2014, 18:37
@Aphton
Zitat:
Kommt drauf an, was du mit Fehlermeldung meinst:
a. Exception
b. Rückgabewert = NIL
Das ist es ja, es ist vorerst ein konstruiertes Beispiel. Wäre der Rückgabewert NIL, müsste man den nicht vorher zuweisen. Exception? Kann sein, vermutlich, aber entweder man überprüft jedes mal vorher individuell was zurück kommen könnte, oder man ist auf alles vorbereitet.

@himitsu
Delphi-Quellcode:
..
  Result := sl.Objects[Index]; // bei einer Execptiopn wird Result zwar nicht überschrieben, aber dann werden die nächsten Zeilen eh nicht ausgeführt
Ich gebe zu, im Grunde ein Sicherheitsfanatiker zu sein, der die Hälfte der Zeit an einem Programm damit verbringt Fehler abzufangen noch bevor sie eine Exception auslösen. Somit fühle ich mich unwohl bei dem Gedanken eine Zeile ins offene Messer laufen zu lassen, in der Annahme, dass es nicht treffen wird, da es darüberfliegt.

@Sir Rufo

Lassen wir mal sl.OwnsObjects außen vorweg, dazu komme ich gleich.

Assigned war auch meine erste Idee, hab es dann aber verworfen, denn entweder ich hab einen Gedankenfehler oder ...
Delphi-Quellcode:
  if o <> nil then ...

//und

  if Assigned(o) then ...
Also entweder ich verstehe Assigned falsch oder es ist das Gleiche.

Wenn ich nun das mache
Delphi-Quellcode:
var
  o: TObject;
begin
dann hat o irgendeinen Wert, ist somit nicht NIL, aber Assigned gleich True, womit eine Abfrage ein falsches Ergebnis liefern würde.

Entweder ich sehe das falsch oder eine frische Objektvariable kann nicht mit NIL oder Assigned geprüft werden.

Somit wäre bei Result := sl.Objects[Index]; Result unkontrolliert, denn entweder wird ein Objekt zugewiesen oder kein Wert übergeben. In dem Fall ist der Wert wie vor der Zeile. Womit wir dann zu himitsus und deinem Vorschlag kommen - knallt es schon in der Zeile sl.Objects[Index] , kann man danach auf jegliche Überprüfung verzichten, denn an der Stelle bricht die Funktion ab. Wie gesagt, ich hab nichts dagegen, nur will ich keine zwei gleiche Fehlermeldungen nacheinander.

Zu sl.OwnsObjects . In Delphi 7 gibt es die noch nicht. Gehe ich richtig in der Annahme, dass inzwischen die Objekte automatisch freigegeben werden?
  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 06:43 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