Archivos de Categoría: Tratamiento de excepciones orientados a objetos

Implementación de excepciones reanudables

Utilizamos la sentencia RESUME para reanudar un programa inmediatamente después de la sentencia que emitió la excepción en el código fuente. Debemos satisfacer los siguientes requisitos previos para usar la sentencia RESUME: La excepción debe interceptarse con la sentencia CATCH en el suplemento BEFORE UNWIND. Esto garantiza que el contexto de la excepción se mantendrá […]

Estructura de control CLEANUP

Si una estructura TRY-ENDTRY contiene un bloque CLEANUP, este bloque se ejecuta cuando se retira la estructura TRY-ENDTRY, porque el sistema no puede encontrar un controlador dentro de la estructura TRY-ENDTRY, pero sí en una estructura TRY-ENDTRY circundante o en un programa de llamadas. En la sentencia CLEANUP, igual que en la sentencia CATCH, se […]

Estructura de control RETRY

En este artículo vamos a utilizar la estructura de control RETRY. Atención: Debemos usar RETRY con cuidado. Si no eliminamos la causa de la excepción del modo adecuado, nuestro programa ingresará en un bucle inifinito. En el evento START-OF-SLECTION de un programa ejecutable simulamos la emisión de una excepción de una división entre cero. Utilizamos […]

Estructura de control TRY-CATCH-ENDRY

Podemos tratar una excepción si la sentencia que la emitió se encuentra en una estructura de control TRY-ENDTRY. Tratamos la excepción mediante la sentencia CATCH en la estructura TRY-ENDTRY. El bloque TRY contiene las sentencias para las que es necesario tratar las excepciones. Un bloque CATCH contiene el programa de control de excepciones que se […]

Emitir excepciones basadas en clases

La emisión de excepciones basadas en clases se realiza mediante la sentencia RAISE EXCEPTION. Existen dos variantes de esta sentencia. Variantes de la sentencia RAISE EXCEPTION… RAISE EXCEPTION TYPE <exception_class> [EXPORTING …]. Esta sentencia crea un nuevo objeto de excepción que es una instancia de la clase <exception_class>. RAISE EXCEPTION <object_ref>. Esta sentencia utiliza un […]

Asignación de excepciones unas a otras

¿Cómo se asignan unas excepciones a otras?   Implementación de la nueva emisión de las excepciones Podemos emitir las excepciones basadas en clases con una de las siguientes variantes de la sentencia RAISE EXCEPTION: RAISE EXCEPTION TYPE <exception_class> [EXPORTING …] Esta sentencia crea un nuevo objeto de excepción que es una instancia de la clase […]

Excepciones basadas en clases en el Debugger

Análisis de las excepciones basadas en clases en el Debugger Si se emite una excepción, el sistema muestra el nombre de la clase de excepción en el campo Excepción emitida en modo debugging. Si un bloque CATCH atrapa la excepción, se visualiza un mensaje de éxito. El puntero de la sentencia actual se mueve entonces […]

Crear clase de excepción con clase de mensaje

¿Cómo crear una clase de excepción con clase de mensaje? En este artículo, vamos a crear una clase de excepción con una clase de mensaje. Utilizando el generador de clases creamos la clase global de excepción con clase de mensajes ZCX_ACCESO_LOGALI que hereda de la clase estándar CX_STATIC_CHECK. Creamos la clase de mensaje ZMSJ_LOGALI en […]

Crear clase de excepcion

¿Cómo se crean las clases de excepciones?   Una excepción es una situación que surge cuando un programa se ejecuta y durante el cual no es posible continuar el flujo normal del programa. SAP Web AS 6.10 presentó un nuevo concepto de excepción de objetos ABAP de manera paralela al concepto existente basado en sy-subrc. […]