✒️ABAP POO El manejo de excepciones en los Objetos ABAP
ABAP POO El manejo de excepciones en los Objetos ABAP
EXCEPCION: es una situacion anormal en el flujo del programa que determina o bien un cambio en la resolucion del problema o produce un mensaje de excepcion y terminar con el procedimiento.
Las excepciones basadas en clases pueden lanzarse utilizando la sentencia RAISE EXCEPTION o por el entorno de ejecucion.
Ejemplo RAISE EXCEPTION:
RAISE EXCEPTION TYPE cx_exception
(EXPORTING attr1 = ...
attr2 = ... )
Ejemplo de entorno de ejecucion:
TRY.
v_resultado = v_num1 / num2.
write: 'El resultado es: ', v_resultado.
CATCH cx_sy_zerodivide INTO ref_exc.
text = ref_exc=>get_text( ).
message text TYPE 'I'.
ENDTRY.
Cuando la excepcion basada en clases se produzca el sistema interrumpira el flujo normal del programa e intentara encontrar el manejador adecuado, si no puede hacerlo ocurrira un error en tiempo de ejecucion. La super clase es CX_ROOT y las clases todas comienzan con el prefijo CX que son CX_NO_CHECK, CX_DYNAMIC_CHECK y CX_STATIC_CHECK.
Ejemplo de metodos son: GET_SOURCE_POSITION que regresa el nombre del programa, include, linea de codigo etc. Y otro ejemplo es GET_TEXT que regresa una descripcion del error.
El atributo KERNEL_ERRID contiene como valor el nombre de la excepcion. Por ejemplo BDC_ZERODIVIDE para la excepcion CX_SY_ZERODIVIDE. Todas estas excepciones se tratan dentro de un bloque TRY ENDTRY donde el manejador (CATCH) ha de manejar la excepcion. Si dentro de este bloque no existe un manejador para dicha excepcion, entonces el sistema intenta buscar "hacia afuera" un manejador que si pueda. En caso de no encontrar ningun manejador se produce un dump.
En la sentencia CATCH se declaran los manejadores que se necesitan:
CATCH cx_... cx_... cx_... (INTO ref_exc1)
Si no se encuentra un manejador en el sistema entonces se ejecuta el bloque CLEANUP dentro del bloque TRY ENDTRY.
 
 
 
Sobre el autor
Publicación académica de Regulo Argotte, en su ámbito de estudios para el Máster ABAP POO.
Regulo Argotte
Profesión: Ingeniero de Sistemas - Mexico - Legajo: VJ26M
✒️Autor de: 18 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Regulo Argotte