Usar Probar/Capturar/Generar excepciones

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Tutoriales > Compartir geoubicaciones >

Usar Probar/Capturar/Generar excepciones

En el diseño utilizamos las acciones Probar/Capturar y Generar para mostrar una advertencia si las coordenadas de geoubicación describen una ubicación situada fuera de EE UU. Estas acciones se ejecutan cuando se hace clic en el botón Try/Catch/Throw (imagen siguiente).

MTDTutGeolocTryCatchThrowBtn

 

Acciones Probar/Capturar/Generar

En el diseño haga doble clic en el icono de la esquina superior izquierda del botón Try/Catch/Throw para abrir el cuadro de diálogo "Acciones" del botón (imagen siguiente).

MTDTutGeolocTryCatchThrow

Las acciones se definieron de esta manera:

 

1.Se añadió una acción Probar/Capturar.
2.Se estableció la variable $Not-USA-Warning, que servirá para almacenar el mensaje de la excepción.
3.La parte Probar establece una condición para probar si la geoubicación está en EE UU o no. Esta condición se especifica en la expresión XPath de una acción Generar. Si la condición da true como resultado, entonces se genera una excepción. El mensaje de la excepción se almacenará en la variable $Not-USA-Warning. Si la condición da false como resultado, no se genera ninguna excepción. En su lugar generamos una secuencia vacía para que no se almacene nada en la variable $Not-USA-Warning. Más abajo describimos cómo construir una expresión XPath que haga esto.
4.La parte Capturar de la acción Probar/Capturar se procesa solamente si se genera una excepción (es decir, solamente si la condición que se probó tiene el resultado true). En la parte Capturar, creamos un cuadro de mensaje que muestra el contenido de la variable $Not-USA-Warning.

 

Expresión XPath de la acción Generar

La expresión XPath de la acción Generar es:

 

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

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

else ()

 

Esta expresión funciona de esta manera:

 

En primer lugar, la cláusula if comprueba si el valor del nodo $MT_GEOLOCATION/Root/Address/@CountryName no es 'USA'.
La cláusula then se procesa si el nombre del país no es USA. Esta cláusula genera una cadena de texto.
Y la cláusula else se procesa si el nombre del país es USA. Esta cláusula genera una secuencia vacía.

 

Si el país de la geoubicación no es USA, entonces la condición da como resultado true y la expresión da como resultado la cadena de texto generada por la cláusula then. Como este resultado no es una secuencia vacía, se genera una excepción y la cadena generada se almacena en la variable $Not-USA-Warning.

 

Por el contrario, si el país de la geoubicación es USA, entonces la condición da como resultado false y la expresión da como resultado una secuencia vacía (generada por la cláusula else). Como el resultado es una secuencia vacía, no se genera ninguna excepción y la parte Capturar de la acción Probar/Capturar no se ejecuta.

 

 


© 2019 Altova GmbH