Erweiterte Fehlerbehandlungsfunktionen für mobile Anwendungen
MobileTogether 2.1 enthält neue Aktionen zur Fehlerbehandlung für mobile Anwendungen, nämlich "Try/Throw" und "Catch", die es Entwicklern ermöglichen, ausgefeilte Fehlerbehandlungsroutinen zu erstellen, die die Benutzererfahrung verbessern. Beispielsweise kann, wenn eine App eine Verbindung zu einem Webdienst eines Drittanbieters herstellen möchte, aber der Server nicht verfügbar ist, die Fehlerbehandlung eine sanfte Wiederherstellung ermöglichen.
Die Fehlerbehandlungsfunktionen von MobileTogether für mobile Anwendungen funktionieren auf allen Plattformen gleich, was Entwicklern Zeit spart, da keine Anpassung der Fehlerbehandlung basierend auf den spezifischen Anforderungen jedes mobilen Betriebssystems erforderlich ist.

Unser vorheriger Beitrag mit dem Titel: REST-Dienste als Datenquellen für mobile Anwendungen Eine Demo-Anwendung wurde verwendet, die einen REST-Dienst aufruft, der vom USGS gehostet wird, um genaue Höhenwerte für geolokalisierte Koordinaten zu erhalten.
Wir können die Mechanismen "Try/Catch" verwenden, um zwei verschiedene Fehler zu behandeln, die bei der Ausführung des REST-Dienstes auftreten können:
- Es könnte zu einer Verbindungsstörung zum USGS-Server kommen
- Wir könnten einen Höhenwert von -1000000 erhalten, was bedeutet, dass das USGS uns mitteilt, dass keine Höheninformationen für die angegebenen Koordinaten vorliegen
Wir können den gesamten REST-Service-Aufruf und die anschließenden Aktionen zur Datenmanipulation innerhalb eines "Try"-Blocks platzieren, wie hier gezeigt:

Wenn die Verbindung zum Webdienst fehlschlägt, werden alle nachfolgenden Aktionen innerhalb des "Try"-Blocks abgebrochen. Wenn wir keine Daten vom USGS erhalten, ist es sinnlos, die oben hervorgehobene Aktion "Knoten aktualisieren" auszuführen. In diesem Beispiel würde eine einzelne Aktion abgebrochen, aber Sie können mehrere Aktionen, Aktionsgruppen oder sogar Aktionsgruppen, die andere Aktionsgruppen aufrufen, innerhalb des "Try"-Blocks platzieren.
Ähnlich wie bei der "Try"-Funktion kann die "Catch"-Funktion ebenfalls mehrere Aktionen ausführen, die nur dann ausgeführt werden, wenn ein Fehler auftritt. Im obigen Screenshot zeigt "Catch" ein Meldungsfenster, das anzeigt, dass die Verbindung fehlgeschlagen ist, und führt die Aktion "Knoten aktualisieren" aus, wobei der gleiche Höhenwert verwendet wird, den das USGS bei einem Fehler außerhalb des zulässigen Bereichs liefern würde. Natürlich können Sie innerhalb der "Catch"-Funktion mehrere Aktionen, Aktionsgruppen oder sogar Aktionsgruppen platzieren, die andere Aktionsgruppen aufrufen, genau wie bei "Try".
Komplexere Flusssteuerung mit Fehlerbehandlungsfunktionen für mobile Anwendungen
Die wahre Leistungsfähigkeit der Fehlerbehandlung mit try/catch/throw entfaltet sich erst dann, wenn eine mobile App komplexere Programmlogik benötigt.
Stellen Sie sich den Fall vor, in dem eine Aktionsgruppe eine Reihe von Operationen enthält – wie beispielsweise Datenbankbefehle oder Aufrufe von Webdiensten –, die alle sequenziell ausgeführt werden müssen, und wobei jeder Aufruf vom Erfolg des vorherigen abhängt. Es wird schnell zu umständlich, das Ergebnis jedes Schritts in einer if-else-Anweisung zu überprüfen. Stattdessen können Sie Datenbankaktionen sauber und elegant so definieren, dass sie eine Ausnahme auslösen, wenn ein Fehler auftritt, und dann einen einzigen, zentralen Fehlerbehandlungsblock am Ende einfügen, in dem der Fehler angezeigt wird.
Dieser Screenshot zeigt die Verwendung von "try/catch" in einer mobilen Anwendung, mit der Sie öffentlich zugängliche Finanzberichte von US-amerikanischen Unternehmen automatisch analysieren und auswerten können. Die Daten werden dabei direkt aus den XBRL-Dateien extrahiert, die in der EDGAR-Datenbank der US-amerikanischen Wertpapieraufsichtsbehörde (SEC) gespeichert sind

Wenn eine der fünf Datenbankabfragen fehlschlägt, wird ein Fehler ausgelöst, die restlichen Aktionen innerhalb des "Try"-Blocks werden übersprungen, und die Variable, die den Fehlertext enthält, meldet, welche Abfrage fehlgeschlagen ist.
Verschachtelte Fehlerbehandlung mit Try/Catch-Blöcken
Sie können sogar einen Fehlerbehandlungsmechanismus mit "try/catch" in einer Aktionsgruppe definieren und die Fehlerbehandlung in einer separaten Unteraktionsgruppe durchführen, die von der Hauptaktionsgruppe aufgerufen wird. Tatsächlich kann dies tief verschachtelt sein, und der Fehler kann an einer Stelle auftreten, die in einer mehrfach verschachtelten Aktion liegt.
Zu diesem Zeitpunkt wird die Kontrolle direkt zurück an den äußeren Fehlerbehandlungsmechanismus geleitet, genauer gesagt an den "catch"-Zweig, wo der Fehler verarbeitet wird. Dies funktioniert genau wie bei der Verwendung von "try/catch/throw" in anderen Programmiersprachen.
Der MobileTogether Designer mit Funktionen zur Fehlerbehandlung (try/catch/throw) für mobile Anwendungen ist kostenlos – Laden Sie Ihre Version jetzt herunter