Try-Catch-Aktion
Ereignisaktion - Kurzfassung
Zweck: Ermöglicht das Abfangen und "Behandeln" von Fehlern beim Ausführen von Ereignisaktionen innerhalb einer Ereignisbehandlung.
Die Try-Catch-Aktion ermöglicht es innerhalb von Ereignisbehandlungen kontrolliert auf Fehler zu reagieren.
Solche Fehlerbehandlungen können in Verbindung mit dem Aufruf von Profilen in Lobster_data (s. Profil aufrufen (Ereignisaktion)) besonders hilfreich sein.
Die Konfiguration der Aktion verzweigt den Ablauf in zwei "Handlungsstränge":
Im Try-Zweig müssen die Aktionen platziert werden, für die die Fehlerbehandlung greifen soll.
Im Catch-Zweig müssen die Aktionen platziert werden, die im Fehlerfall ausgeführt werden sollen.
►HINWEIS◄ Falls im Catch-Zweig keine Aktionen konfiguriert sind, wird die Ereignisbehandlung im Fehlerfall ohne jede Benachrichtigung unterhalb der Try-Catch-Aktion fortgesetzt.
Im Fehlerfall steht im Catch-Zweig ein Objekt vom Typ "Fehlerinformation" zur Verfügung, dessen Eigenschaften per Objekt-Feld Wertauflöser weitere Details zum Fehler entnommen werden können.
Try-Catch-Aktionen können ggf. mehrstufig ineinander verschachtelt werden, um Fehler abgestuft zu behandeln. Um die Kontrolle aus dem Catch-Zweig einer inneren Fehlerbehandlung an die umgebende Ebene weiterzugeben, kann die Abbrechen verwendet werden.
Generell kann die Abbrechen verwendet werden, um gezielt Fehler mit bestimmten Eigenschaften auszulösen.
►HINWEIS◄ Die Try-Catch-Aktion fängt nicht alle Arten von Fehler ab. Insbesondere Datenbankfehler, durch die die Integrität der Transaktion gefährdet wäre, können nicht abgefangen werden.
Konfigurationsbeispiele:
Eine Suche (Ereignisaktion) (nicht im Screenshot) liefert per Tupelsuche zusammengefasste Ergebnisse zum Wert bestimmter Sendungen als Liste in der Variablen shipments.
Diese Liste soll innerhalb einer Für jeden Eintrag wiederholen (Schleife) (links im Bild) ausgewertet werden, um für jede gelistete Sendung den durchschnittlichen Wert je Packstück in einer Meldung anzuzeigen.
Falls es innerhalb der Schleife im Try-Zweig zu einem Fehler kommt, wird der Catch-Zweig abgearbeitet und eine Fehlermeldung ausgegeben. Die Schleife wird dadurch beendet.
Da die Berechnung innerhalb der Schleife eine Division durch die Anzahl der Packstücke enthält, wird die Verarbeitung abgebrochen, falls für eine der Sendungen eine Anzahl von 0 Packstücken vorliegt:
Falls die Ausgabe nicht insgesamt abgebrochen, sondern nur für die betreffende Sendung ein Fehler ausgewiesen werden soll, muss die Aktion "Try Catch" stattdessen innerhalb der Schleife platziert werden:
An der Ausgabe ist zu erkennen, dass die Verarbeitung in dieser Konfiguration nicht beim ersten Fehler abgebrochen wird.