Throw

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Aktionen > Wenn, Schleife, Let, Try/Catch, Throw >

Throw

Die Aktion "Throw" wird im Try-Teil einer Try/Catch-Aktion (siehe Abbildung unten) verwendet. Sie wertet einen XPath-Ausdruck aus. Wenn das Ergebnis der Auswertung keine leere Sequenz it, wird eine Ausnahme ausgelöst, die in der Variablen der Try/Catch-Aktion gespeichert wird; in der Abbildung unten hat diese Variable den Namen $Not-USA-Warning.

MTDThrow

Im Beispiel in der Abbildung oben wird eine Ausnahme ausgelöst, wenn sich der Standort des Geräts nicht in den USA befindet. Der XPath-Ausdruck lautet:

 

if ($MT_GEOLOCATION/Root/Address/@CountryName != 'USA'

then (concat'Warning: Device location is outside the US: '$MT_GEOLOCATION/Root/Address/@CountryName)) 

else ()

 

Dieser Ausdruck funktioniert folgendermaßen:

 

Die if-Klausel überprüft, ob der Wert des Node $MT_GEOLOCATION/Root/Address/@CountryName (nicht) 'USA' ist.
Die then-Klausel wird verarbeitet, wenn der Name des Landes nicht USA ist. Mit dieser Klausel wird ein String generiert.
Die else-Klausel wird verarbeitet, wenn der Name des Landes USA ist. Mit dieser Klausel wird eine leere Sequenz erzeugt.

 

Wenn das Land, in dem sich der Standort befindet, nicht USA ist, so ist die Bedingung true und der Ausdruck wird zu dem durch die then-Klausel generierten String ausgewertet. Da es sich bei diesem Ergebnis nicht um eine leere Sequenz handelt, wird eine Ausnahme ausgelöst und der generierte String wird in der Try/Catch-Variablen $Not-USA-Warning gespeichert.

 

Wenn das Land, in dem sich der Standort befindet, jedoch USA, ist, so ist die Bedingung false und das Ergebnis des Ausdrucks ist eine (durch die else-Klausel generierte) leere Sequenz. Da es sich beim Ergebnis um eine leere Sequenz handelt, wird keine Ausnahme ausgelöst. Daher wird der Catch-Teil der Try/Catch-Aktion nicht ausgeführt.

 

 

Anmerkung:Wenn eine Sequenz einen leeren String-Eintrag (''), enthält, so ist die Sequenz nicht leer (und es wird eine Ausnahme ausgelöst)

 

Im Tutorial Freigeben von Standortdaten wird erklärt, wie Sie die Aktionen Try/Catch und Throw verwenden können.

 


© 2019 Altova GmbH