Wenn nahezu immer mit einem Fehler zu rechnen ist und/oder wenn der Fehler "egal" ist, dann ein Boolean.
Auch wenn man den Fehler "schnell" z.B. via IF mit einer alternativen Variante behenben kann.
Zusätzlich kann man SetLastError oder eine Variable nutzen, um "erweiterte" Informationen weiterzugeben. (globale Variable, Property usw.)
-
Wenn unterschiedliche Fehler auftreten können und man daruaf reagieren können soll, dann z.B. HRESULT, Integer oder ein Enum, für erweiterte Informationen.
-
Wenn es ein "schwerwiegender" Fehler ist, bei dem die hauptsächliche Funktion nicht gewährleistet ist
und/oder wenn "selten" Fehler auftreten
oder wenn die "ausführliche" Fehlerinformation nicht ordentlich als Result zurückgegeben werden können *1,
dann Exceptions.
*) z.B. wenn es schon ein Result gibt und man in Diesem auf keine "ungültigen" Werte als Fehlerinformationen nutzen kann (z.B. siehe ShellExecute)
-
z.B.
IntToStr muß eine
Exception werfen, aber
TryIntToStr gibt nur den Boolean zurück und
Val einen "Fehlercode", bzw. die Fehlerposition.