![]() |
Funktion auf Erfolg testen
Hallo,
wie testet man am besten, ob eine Funktion "erfolgreich" war? Beispiel: Eine Funktion soll einen Wert (von woanders) ermitteln und diesen zurückgeben. Nun kann aber beu dieser Ermittlung einiges schief gehen, und unter Umständen dieser Wert nicht geliefert werden. Der Idealfall wäre sowas wie "if not mywert then exit", mit mywert <> bool. Mir schwebt vor: - entweder eine globale "funktionserfolgvariable" zu definieren oder - jede Funktion einen bool wert zurückgeben lassen und die Rückgabewerte global definieren. Ich denke, die zweite Variante ist Blödsinn. Bei der ersten Variante habe ich aber auch Bauchschmerzen. Wie geht das eleganter? Danke schon mal Thomasch |
Re: Funktion auf Erfolg testen
Dafür gibt es auch noch die Möglichkeit der Exceptions. Eleganter gehts meist kaum.
|
Re: Funktion auf Erfolg testen
Hi,
versuchs mal u.U. mit nem VAR-Parameter:
Delphi-Quellcode:
In "MeineFkt" muss dann Success:=True; gesetzt werden, wenn alles erfolgreich abgearbeitet wurde.
FUNCTION MeineFkt(a,b,c:TMeineParameter; VAR Success : Boolean) : TMeinRueckgabeWert;
// Anwendung: ... VAR Erfolg : Boolean; .. Erfolg := FALSE; Ergebnis := MeineFkt(1,2,3,Erfolg); IF Erfolg THEN BEGIN ... END; Oder alternativ ![]() ![]() Gruß Stephan :dance: |
Re: Funktion auf Erfolg testen
Hai thomasch,
eigentlich gibt es nur zwei Möglichkeiten. a) Die Funktion liefert ein Boolean für den Erfolg und das Ergebniss in einem VAR-Parameter b) Die Funktion liefert einen eindeutigen Wert zurück wenn etwas fehlgeschlagen ist |
Re: Funktion auf Erfolg testen
Ok,
danke für Eure schnelle Hilfe :-D Thomasch |
Re: Funktion auf Erfolg testen
was z.b. oft verwendet wird: bei misserfolg liefert eine funktion, die normalerweise nur positive zahlen zurückgibt, -1 zurück.
sprich einen wert, der eigentlich nicht in der ergebnismenge liegt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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