Throw

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Actions > If, Loop, Let, Try/Catch, Throw >

Throw

L'action Throw est censée être utilisée dans la partie Try d'une action Try/Catch (voir capture d'écran ci-dessous). Elle évalue une expression XPath. Si le résultat de l'évaluation n'est pas une séquence vide, alors une exception sera lancée et l'exception est stockée dans la variable de l'action Try/Catch ; dans la capture d'écran ci-dessus, cette variable est nommée $Not-USA-Warning.

MTDThrow

Dans l'exemple affiché dans la capture d'écran ci-dessus, nous lançons une exception si la géolocalisation de l'appareil ne se situe pas aux USA. L'expression XPath est :

 

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

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

else ()

 

Cette expression fonctionne comme suit :

 

La clause if contrôle si la valeur du nœud $MT_GEOLOCATION/Root/Address/@CountryName est/n'est pas 'USA'.
La clause then est traitée si le nom du pays n'est pas USA. Cette clause génère une chaîne.
La clause else est traitée si le nom du pays est USA. Elle produit une séquence vide

 

Si le pays de géolocalisation n'est pas USA, la condition est true et l'expression évalue à la chaîne générée par la clause then. Puisque ce résultat n'est pas une séquence vide, une exception est lancée et la chaîne générée est stockée dans la variable Try/Catch $Not-USA-Warning.

 

Si le pays est USA, alors la condition est false et l'expression évalue à une séquence vide (générée par la clause else). Étant donné que le résultat est une séquence vide, aucune exception n'est lancée. C'est pourquoi la partie Catch de l'action Try/Catch n'est pas exécutée.

 

Note :Si une séquence contient un item de chaîne vide (''), alors la séquence est non vide (et une exception sera lancée).

 

Le tutoriel Partager les géolocalisations montre comment utiliser les actions Try/Catch et Throw.

 


© 2019 Altova GmbH