ABORT
– Referencia de Lenguaje Spin
RETURN
o alcanzando el final del método) la pila de llamada disminuirá. A esto se le llama
"empujar" a la pila y "jalar" de la pila respectivamente.
RETURN
La instrucción
regreso al llamador inmediato; el que directamente llamo al método a donde regresara. La
ABORT
instrucción
, sin embargo repetidamente jalara datos de la pila de llamada hasta que
alcance un llamador con una trampa de abortar (ver abajo); regresando a algún llamador de
nivel mas alto que puede tener solo una llamada o muchas llamadas hasta la anidación de una
cadena de llamadas. Cualquier punto de regreso en el camino entre el método abortar y la
trampa de método abortar se ignoran y esencialmente terminadas. De esta forma
permite al código salir de un profundo y potencialmente complicada serie de lógicas
complicadas que llevaran a un serio problema para poder manejar a un alto nivel.
Usando ABORT
Cualquier método puede proporcionar una instrucción
código para verificar por un estado de abortar y manejarlo. El mas alto nivel de código puede
ser ya sea el que llamo un método abort directamente o a través de algún otro grupo de
métodos. Para proporcionar una instrucción
if <condición mala>
abort
—o—
if <condición mala>
abort <valor>
<mala condición>
...donde
<valor>
es un valor de regreso al abortar.
La Trampa Abort (
\
ABORT
Para atrapar un
, la llamada al método o cadena de metodos que podría potencialmente
abortar debe preceder con la trampa abortar, que es el símbolo diagonal invertida (
ejemplos un método llamado
métodos pueden abortar, una llamada a método podrías atrapar esto con:
if \MayAbort
abort <valor>
Pagina 50 · Manual Propeller v1.1
jala la información mas reciente de la pila de llamada para facilitar el
ABORT
'Una condición mala se detecta,
aborte
'Una condición mala se detecta,
aborte con un valor
es una condición que determina si el método debe abortar y
)
MayAbort
podría abortar posiblemente, o si sus llamadas a otros
'Llama MayAbort con trampa abort
'Procesa abort
ABORT
. Es hasta el más alto nivel de
, use algo como:
ABORT
\
). Por