Try-Catch

​​Syntax

	try($eval, $catch)

Beschreibung

Führt einen Code-Block oder Ausdruck aus und behandelt auftretende Fehler über einen optionalen catch-Block. Die try-Funktion implementiert ein try-catch-Verhalten für TL-Script, das eine robuste Fehlerbehandlung ermöglicht.

Die Funktion arbeitet mit zwei Parametern:

  1. eval: Der auszuführende Code-Block oder Ausdruck, der einen Fehler verursachen könnte.
  2. catch: Ein optionaler Code-Block oder Ausdruck, der ausgeführt wird, wenn während der Ausführung von eval ein Fehler auftritt.
Wird der eval-Block erfolgreich ausgeführt, wird dessen Ergebnis zurückgegeben. Tritt ein Fehler auf, wird der catch-Block ausgeführt. Dieser erhält immer zwei Argumente: die Fehlermeldung message und den Wert value.
  • message: Bei einer I18NException der ResKey, sonst die Fehlermeldung als Text.
  • value: Der über das dritte Argument von throw() übergebene Wert. null, wenn der Fehler nicht aus einem throw() stammt oder throw() ohne Wert aufgerufen wurde.

Parameter

Bezeichnung Typ Beschreibung Pflicht Standard

eval

Code-Block oder Ausdruck Der Code-Block oder Ausdruck, der ausgeführt werden soll. ja -
catch Code-Block oder Ausdruck Der Code-Block oder Ausdruck, der bei einem Fehler ausgeführt wird. Erhält zwei Argumente: die Fehlermeldung und den über throw() übergebenen Wert (value). nein null

Rückgabewert

Typ: Object

Gibt das Ergebnis des eval-Blocks zurück, wenn dieser erfolgreich ausgeführt wurde. Tritt ein Fehler auf, wird das Ergebnis des catch-Blocks zurückgegeben. Ist kein catch-Block angegeben, wird bei einem Fehler null zurückgegeben.

Beispiele

	try(
  sendMail(
    subject: $subject,
    to: $emailAddr,
    body: $emailBody
  ),
  catch: mailError -> {
    info("E-Mail-Zustellung an " + $emailAddr + " fehlgeschlagen. Grund: " + $mailError);
    false
  }
)

Ausgabe: Versucht eine E-Mail zu senden. Bei Erfolg wird das Ergebnis von sendMail zurückgegeben. Bei einem Fehler wird false zurückgegeben und eine Benutzerinfo mit der versuchten E-Mail-Adresse.