✒️ABAP POO El manejo de excepciones en los Objetos ABAP
ABAP POO El manejo de excepciones en los Objetos ABAP
Manejo de Excepciones en los Objetos ABAP.
Excepción nos referimos a una situación que sucede cuando un programa se esta ejecutando y por alguna razón ocurre una situación anormal en el programa. La cual es tratada ya que previamente fue contemplada en el mismo programa.
Las Excepciones basadas en clases se introduce a partir de la versión SAP WEB AS 6.10 estas excepciones basadas en clase pueden lanzarse utilizando la sentencia RAISE EXCEPTION o por el entorno de ejecución.
“La división por cero en un ejemplo de una excepción causada por el entorno de ejecución”.
En sap ya existen variables clases de excepciones predefinidas por el sistema, particularmente para las excepciones del entorno de ejecución.
Usualmente crearemos las clases de excepciones globales en el CLASS BUILDER a través de la trx se24 aunque también podemos definirlas en nuestros programas. Cuando ocurre una excepción en un programa se intentara encontrar el manejador adecuado del error , si no puede hacerlo ocurrirá un error en tiempo de ejecución.
Todas las clases de excepciones son derivadas de las clases estándar CX_NO_CHECK , CX_DYNAMIC_CHECK, CX_STATIC_CHECK. Que son subclases de la superclase CX_ROOT.
“Todas las clases de excepciones estándar empiezan con CX”
La clase CX_ROOT proporciona todos los métodos heredados como el método GET_SOURCE_POSITION (devuelve el nombre del programa, includes y línea de la excepcion).
Y el método GET_TEXT (devuelve un texto de la excepción en formato String).
Podemos crear varios textos en la trx se24 pestana txt clase global como constantes estáticas.
Todas las clases de excepciones heredan el atributo KERNEL_ERRID de CX_ROOT , el atributo contiene nombre del error en tiempo de ejecución, Por ejemplo BDC_ZERODIVIDE si el programa captura una excepción CX_SY_ZERODIVIDE que es la división por cero.
Para capturar excepciones deben estar encerrados en el bloque TRY … ENDTRY. La excepción será manejada utilizando la sentencia CATCH en el bloque TRY-ENDTRY.
Dentro del bloque de la sentencia CATCH podemos especificar la cantidad de clases de excepciones que necesitamos.
EL Bloque CLEANUP es ejecutado si el sistema no encuentra un manejador de excepciones dentro del bloque TRY-ENDTRY.
REPORT z_excepciones_test_ql24s.PARAMETERS: num1 TYPE i,
num2 TYPE i.
DATA: result TYPE i,
text TYPE string,
ref_exc TYPE REF TO cx_root.
START-OF-SELECTION.
TRY .
result = num1 * num2.
WRITE:/ 'Result is: ', result.
CATCH cx_sy_arithmetic_overflow INTO ref_exc.
text = ref_exc->get_text( ).
MESSAGE text TYPE 'I'.
ENDTRY.
 
 
 
Sobre el autor
Publicación académica de Tobias Emanuel Mareco Rojas, en su ámbito de estudios para el Máster ABAP POO.
Tobias Emanuel Mareco Rojas
Profesión: Ingeniería en Informática - Paraguay - Legajo: QL24S
✒️Autor de: 92 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Tobias Mareco