Árvore de páginas

Sintaxis

 

BEGIN SEQUENCE

          ...

          < instruções >

          ...

          [ BREAK [ < expressão > ] ]

          ...

          < instruções >

          ...

          [ RECOVER [ USING < variável > ] ]

          ...

          < instruções >

          ...

END SEQUENCE

 

 

Propósito

 

El comando BEGIN SEQUENCE define una estructura secuencial de control dentro del flujo de ejecución de un programa, que permite su interrupción cuando ocurre un determinado evento.

 

 

Argumentos

 

BREAK < expressão >

 

Desvía el flujo de ejecución hacia la línea de instrucción inmediatamente después del siguiente comando RECOVER, si hubiera uno especificado. Si éste existe, el flujo de ejecución se desviará a la línea de instrucción inmediatamente después del comando END SEQUENCE.

 

La expresión ( < expressão > ) es un valor que se atribuirá a la variable ( < variável > ) especificada por la cláusula USING del comando RECOVER.

 

RECOVER USING < variável >

 

Define un punto de recuperación dentro del bloque de secuencia, para lo cual se desviará el flujo de ejecución después de ejecutar un comando BREAK. Si la cláusula USING < variável > se especifica, esta variable recibirá el valor suministrado por el comando BREAK.

 

END SEQUENCE

 

Define el fin del bloque de secuencia. Después de ejecutar el comando BREAK, el flujo de ejecución se desvía a la primera línea de instrucción después del comando END SEQUENCE, si no se ha especificado un comando RECOVER dentro de la secuencia.

 

 

Utilización

 

El comando BEGIN SEQUENCE ... END SEQUENCE es una estructura de control que facilita la construcción de sistemas de tratamiento de errores o excepciones. Este delimita un bloque de instrucciones, incluso la invocación de funciones.

 

Dentro de un bloque de secuencia construido por medio de este comando, hay algunas restricciones con relación a los comandos que son permitidos entre un BEGIN SEQUENCE y un RECOVER. Se permite ejecutar un RETURN, pero no un LOOP o un EXIT de comandos WHILE ... ENDDO o FOR ... NEXT externos a la secuencia. Igualmente, entre un RECOVER y un END SEQUENCE está permitido ejecutar un LOOP, un EXIT o un BREAK, una vez que la secuencia ya se completó hasta este ponto.

 

La utilización del comando LOOP, dentro de un bloque definido por el comando RECOVER, es útil para permitir la reejecución del bloque de secuencia definido, después de que se ha tratado o recuperado el error ocurrido.

 

La estructura definida por el comando BEGIN SEQUENCE ... END SEQUENCE es bastante flexible. Varias se pueden intercalar y más de una se puede definir dentro de una misma función.

 

 

Ejemplos

 

La estructura típica del comando BEGIN SEQUENCE tiene el siguiente ejemplo:

 

BEGIN SEQUENCE

          ...

          < instruções >

          ...

          IF < condição de erro / exceção >

                    BREAK

          ENDIF

          ...

          < instruções >

          ...

          RECOVER

          ...

          < instruções para o tratamento do erro >

          ...

END SEQUENCE

  • Sem rótulos