Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

Objekt auf Übergabe prüfen.

  Alt 20. Jan 2014, 13:26
Anbei ein konstruiertes Beispiel:
Delphi-Quellcode:
function Test(sl: TStringList; Index: Integer): TObject;
begin
  Result := sl.Objects[Index];
  //was hier Prüfen?
  sl.Delete(Index);
end;
In der Zeile Result := sl.Objects[Index]; wird ein Objekt übergeben. Nun gehen wir mal davon aus, Index ist außer Bereich, also gibt es eine Fehlermeldung. Das ist auch so gewollt.

Nun weiter im Programm, als nächstes ist die Zeile sl.Delete(Index); dran. Falls der Index zu hoch ist, wird es auch hier eine Fehlermeldung geben. Und das soll nicht sein. Eine Meldung ist ok, zwei zuviel.

Jetzt bitte nicht fragen wieso hier Index nicht vorher überprüft wird, ist nur ein Beispiel.

Wie bekommt man nun mit ob in der ersten Zeile alles richtig abgelaufen ist? Es geht nicht drum in der ersten Zeile eine Fehlermeldung abzufangen. Die soll kommen wenn Index falsch ist, nur will ich in dem Fall keine zwei gleiche Meldungen.

Man könnte Result prüfen bevor man die zweite Zeile ausführt, nur wie? Auf nil? Und nun die Frage: muss man Result in dem Fall vorher nil zuweisen? Sieht irgendwie sonderbar aus.
Delphi-Quellcode:
begin
  Result := nil;
  Result := sl.Objects[Index];
  if Result <> nil then
    sl.Delete(Index);
  Mit Zitat antworten Zitat