🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP POO El manejo de excepciones en los Objetos ABAP

ABAP POO El manejo de excepciones en los Objetos ABAP

ABAP POO El manejo de excepciones en los Objetos ABAP

U4-L1

Excepciones

Situación anormal que sucede en la ejecución de un programa, la cual es tratada ya que previamente fue contemplada en el mismo.

Acciones asociadas a una excepción:
- Producir un mensaje informativo y terminar proceso
- Cambio de estrategia de resolución del programa.

A partir de la versión SAP Web AS 6.10, se introducen las "Excepciones basadas en clases", las cuales pueden lanzarse utilizando la sentencia RAISE EXCEPTION o por el entorno de ejecución (ej, la división por cero).

Una excepción es representada por un objeto de excepción (instancia de la clase excepción).

Se pueden definir las propias clases de excepciones aunque ya existen muchas definidas en el sistema particularmente para las excepciones del entorno de ejecución.

Las clases de excepciones pueden declararse globales (se24) o locales (en programa).

Una excepción basada en clases interrumpirá el programa y buscara un manejador, de no encontrarlo se generará 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 o CX_STATIC_CHECK que son subclases de la superclase CX_ROOT por lo que heredan sus métodos y atributos.

Las clases de excepciones estándar comienzan con CX_.

El método GET_SOURCE_POSITION de la clase CX_ROOT, devuelve nombre del programa,, includes y línea del código donde se produjo la excepción, el método GET_TEXT, devuelve un texto de la excepción en formato STRING.

***Se pueden crear muchos textos en una clase(a parte de los heredados) a los cuales se le asignan un ID, los ID's son creados en class builder(se24), pestaña TXT como constantes estáticas. Se puede indicar el texto a usar cuando se genera una excepción, pasando el ID al parámetro TEXT_ID del constructor de instancia.

El atributo KERNEL_ERRID de CX_ROOT, contiene nombre del error en tiempo de ejecución que se disparó por el entorno de ejecución (ej. BDC_ZERODIVIDE, si el programa captura la excepción CX_SY_ZERODIVIDDE que es la división por cero.

Una excepción será manejada con la sentencia CATCH solo si está dentro de un bloque TRY-ENDTRY.

Si una excepción ocurre en bloque TRY;
1. Se busca la primer sentencia CATCH dentro del mismo bloque y
2. Gradualmente busca hacia afuera todos los bloques TRAY-ENDTRY que puedan manejar la excepción.
2. Si encuentra uno, busca su manejador.
3. Si no encuentra manejador pero TRY-ENDTRY esta dentro de una subrutina, el sistema propaga la excepción al programa llamador.

El bloque CATCH contiene el manejador de excepciones que se ejecuta si una excepción específica ocurre en el bloque TRY asociado.

Dentro del bloque CATCH se especifica la cantidad de clases de excepciones que se necesiten.

El bloque CLEANUP se ejecuta si el sistema no encuentra un manejador de excepciones dentro del bloque TRY-ENDTRY.

***En el uso de bloques TRY-ENDTRY anidados, se puede declarar un bloque dentro de otro tanto como sea requerido, así los bloques TRY, CATCH y CLEANUP pueden contener bloques completos TRY-ENDTRY.

Ejemplo de manejo de excepción predefinida

v_num1 type i,
v_num2 type i,
v_resultado type 1,
text type stirng,
ref_exc type ref to cx_root.

START-OF-SELECTION.
TRY.
v_resultado = v_num1 / v_num2.
WRITE: 'El resultado es: ', v_resultado. "Muestra valor si no ocurre excepción

CATCH cx_sy_zerodivide INTO ref_exc. "Si v_num1 = 1 y v_num2 = 0 ocurre excepción
text = ref_exc->get_text( ). "Recupera texto descriptivo
MESSAGE text TYPE 'I'. "Envia mensaje con texto recuperado
ENDTRY.


 

 

 


Sobre el autor

Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.

SAP Master

Denisse Adriana Hernandez Trujillo

Mexico - Legajo: AH80E

✒️Autor de: 71 Publicaciones Académicas

🎓Egresado de los módulos:

Certificación Académica de Denisse Hernandez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El manejo de excepciones en los Objetos ABAP" de la mano de nuestros alumnos.

SAP Expert


Excepción: situación que sucede cuando un programa se está ejecutando y por alguna razón ocurre una situación anormal, que se trata al contemplarse previamente en el mismo. A partir de SAP Web AS 6.10 se introduce el concepto de excepciones en los objetos basadas en clases. Se lanzan con RAISE EXCEPCTION o por el entorno de ejecución (división por cero por ejemplo). La excepción se representa por un objeto y sus atributos contienen información de la situación de error. Para crear las clases de excepciones globales, se usa el Class Builder (SE24) o localmente en el programa. Las clases de excepciones derivan de CX_ROOT que tiene tres CX_NO_CHECK, CX_DYNAMIC_CHECK y CX_STATIC_CHECK....

Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Manejo de Excepciones en los Objetos ABAP Utilizamos el termino excepcion para referirnos a una situacion que sucede cuando un programa se esta ejecutando y por alguna razon ocurre una situacion anormal en el programa, la cual es tratada ya que previamente fue contemplada en el mismo programa. Las excepciones basadas en clases pueden lanzarse utilizando la sentencia RAISE EXCEPTION o por el entorno de ejecucion. En una situacion de excepciones, una excepcion es representada por un objeto excepcion, que es una instancia de la clase excepcion. Los atributos de cada objeto excepcion contienen informacion de la situacion del error. Transaccion SE24 Class Builder crearemos las clases de excepciones globales. Cuando una excepcion basada en clases...

Acceder a esta publicación

Creado y Compartido por: Juan Jose Pujol Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

EXCEPCION Una situación anormal que sucede cuando se está ejecutando un programa, la cual es tratada ya que fue contemplada en el programa. Muchas veces la acción que se asocia a una excepción es un mensaje informativo y terminar la ejecución del programa. A partir de la versión SAP Web as 6.10 surge el concepto de las Excepciones basadas en clases, las cuales pueden lanzarse con la sentencia RAISE EXCEPTION. Es representada por un objeto excepción que es una instancia de la clase excepción y sus atributos contienen la información del error. Se pueden definir clases de excepciones globales desde el Class Builder por medio de la transacción SE24, aunque también se pueden...

Acceder a esta publicación

Creado y Compartido por: Julio Villalta / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

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. ...

Acceder a esta publicación

Creado y Compartido por: Regulo Argotte

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!