ATRAPAetiqueta
lista_de_instrucción
CATCHetiqueta
lista_de_instrucción
Ejecuta las instrucciones en lista_de_instrucción
y devuelve lo que las instrucciones devuelve (o no devuelve nada, si las instrucciones no devuelven nada).
Si lista_de_instrucción
ejecuta una instrucción LANZA con un argumento igual al argumento etiqueta
de ATRAPA (con una comparación insensible a las mayúsculas y minúsculas), entonces termina la ejecución inmediatamente.
En este caso, si LANZA fue dado un valor, ATRAPA devuelve este valor.
El argumento etiqueta
debe ser una palabra.
Si etiqueta
es la palabra ERROR, entonces cualquier condición de error que sucede mientras que se ejecuta lista_de_instrucción
tiene el efecto de ejecutar LANZA "ERROR
en lugar de escribir un mensaje de error y devolver control al alto nivel interactivo.
En este caso, ATRAPA no devuelve un valor.
Además, mientras se ejecuta lista_de_instrucción
, la variable ERRACT se vuelve desligado.
(Si hay un error mientras ERRACT tiene un valor, se toma ese valor como una lista de instrucciones para ser ejecutado después de escribir el mensaje de error.
Típicamente, si ERRACT tiene un valor, es la lista [PAUSA]
.)
PARA MIPROGRAMA2
ESCRIBE [Antes de lanzar]
LANZA "etiqueta1
ESCRIBE [Nunca llega aquí porque LANZA retrocede]
FIN
PARA MIPROGRAMA1
ATRAPA "etiqueta1 [MIPROGRAMA2]
ESCRIBE [Estoy de vuelta]
FIN
MIPROGRAMA1
Antes de lanzar
Estoy de vuelta