Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Funktion auf Erfolg testen (https://www.delphipraxis.net/43683-funktion-auf-erfolg-testen.html)

thomasch 7. Apr 2005 07:53


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

Mario 7. Apr 2005 08:04

Re: Funktion auf Erfolg testen
 
Dafür gibt es auch noch die Möglichkeit der Exceptions. Eleganter gehts meist kaum.

Steve 7. Apr 2005 08:07

Re: Funktion auf Erfolg testen
 
Hi,

versuchs mal u.U. mit nem VAR-Parameter:

Delphi-Quellcode:
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;
In "MeineFkt" muss dann Success:=True; gesetzt werden, wenn alles erfolgreich abgearbeitet wurde.
Oder alternativ Delphi-Referenz durchsuchenOUT statt Delphi-Referenz durchsuchenVAR :)


Gruß
Stephan :dance:

Sharky 7. Apr 2005 08:17

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

thomasch 7. Apr 2005 08:59

Re: Funktion auf Erfolg testen
 
Ok,
danke für Eure schnelle Hilfe :-D

Thomasch

DGL-luke 7. Apr 2005 13:16

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 04:05 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