Re: Rücksprung über mehrere Prozeduraufrufe
Verfasst: 05.10.2018 15:20
Man kann auch den Fehler/Status als Rückgabewert, und Funktionsergebnisse über Ausgabeparameter zurückgeben.
Oder auch andersherum, oder beides über Ausgabeparameter. Oder auch beides in einer Struktur (\result, \error) als Rückgabewert. Ändert aber nichts am grundlegend C-like error handling. Ich würde aber lokales handling gegenüber irgendwelchen globalen flags vorziehen.
Gab es nicht auch mal eine try/catch lib für PB? Kommt aber wahrscheinlich am Ende aufs Selbe raus.
Code: Alles auswählen
Procedure.i f(x.i, *out.Integer)
If x <= 100
*out\i = 2 * x
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Define xx.i
If f(3, @ xx)
Debug "xx: " + xx
Else
Debug "error"
EndIf
If f(300, @ xx)
Debug "xx: " + xx
Else
Debug "error"
EndIf
Gab es nicht auch mal eine try/catch lib für PB? Kommt aber wahrscheinlich am Ende aufs Selbe raus.