🚀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

MANEJO DE EXCEPCIONES EN LOS OBJETOS ABAP – LECCION 4-1

EXCEPCION, utilizamos el termino para referirnos a una situación que sucede cuando un programa se está ejecutando y por alguna razón ocurre una situación anormal en el programa, la cual es tratada yo que previamente fue contemplada en el mismo programa.

Muchas veces. La acción asociada a una excepción, es simplemente producir un mensaje informativo y terminar el procesamiento. Otras veces, es solo la indicación de la necesidad de un cambio en la estrategia de resolución del programa.

A partir de la versión SAP WER AS 6.10, SAP introduce un nuevo concepto en las excepciones de los objetos ABAP, en paralelo al que describimos anteriormente. Este nuevo concepto es el de las EXCEPCIONES BASADAS EN CLASES


En las excepciones basadas en clases pueden lanzarse utilizando la sentencia RAISE EXCEPTION o por el entorno de ejecución

NOTA, la división por cero es un ejemplo de una excepción causada por el entorno de ejecución

En una situación de excepciones, una excepcion es representada por un objeto excepcion, que es una instancia de la clase excepcion. Los atributos de casa objeto excepcion contienen información de la situación del error

Se puede definir nuestras propias clases de excepciones, pero debemos tener en cuenta que ya existe un amplio rango de clases de excepciones predefinidas en el sistema, particularmente para las excepciones del entorno de ejecución.

Usualmente creamos las clases de excepciones globales en el CLASS BUIDEL a través de la transacción SE24, aunque también podemos definirla localmente en nuestro programa.

Cuando una excepción basada en clases se produzca, el sistema interrumpirá el flujo normal del programa e intentara encontrar el manejador adecuado, 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 o CX_STATIC_CHECK que son a su vez subclases de la superclase CX_ROOT.

La clase CX_ROOT proporciona algunos métodos predefinidos que son heredados por todas las clases, como el método GET_SOURCE_POSITION, que devuelve el nombre del programa principal, los INCLUDES y la línea del condigo fuente donde se produjo la excepción y el método GET_TEXT que devuelve un texto de la excepción en el formato STRING

Las nuevas clases de excepciones que creemos heredarán da alguna de las superclases anteriormente mencionadas por lo que podremos agregarle otros componentes que generalmente serán texto. Luego podremos especificar que texto se utilizara cuando se dispare una excepción.

Todas las clases de excepciones heredaran el atributo KERNEL_ERRID de CX_ROOT. Este atributo contiene el nombre del error en tiempo de ejecución que ha sido disparado por el entorno de ejecución. Por ejemplo, BDC_ZERODIVIDEsi el programa captura una excepción CX_SY-ZERODIVIDE que es la división por cero.

Una excepcion solo podrá capturarse si la sentencia que la produjo esta encerrada en un bloque TRY-ENDTRY. La excepcion luego será manejada utilizando la sentencia CATCH en el bloque TRY-ENDTRY

El bloque TRY contiene el conjunto de sentencias que manejan las excepciones. Si una excepción ocurre en el bloque TRY, el sistema busca la primera sentencia CATCH dentro del mismo bloque TRY-ENDTRY y luego gradualmente busca hacia afuera en todos los bloques TRY-ENDTRY que puedan manejar la excepción

Si encuentra uno, tratara de buscar su manejador. Si no puede encontrar un manejador pero el bloque TRY-ENDTRY está dentro de una subrutina entonces el sistema tratara de propagar la excepción al programa llamador

El bloque CATCH contiene el manejador de excepciones que es ejecutado si una excepción especifica ocurre en el bloque TRY asociado

NOTA, dentro de la sentencia CATCH podemos especificar la cantidad de clases de excepciones que necesitamos

El bloque CLEANUP es ejecutado se el sistema no encuentra un manejador de excepciones dentro del bloque TRY-ENDTRY

EJEMPLO DEL MANEJADOR DE UNA EXCEPCION PREDEFINIDA

En el siguiente ejemplo veremos cómo instanciar una clase de excepciones existentes. Para ello, creamos un nuevo programa ABAP con el siguiente código

La idea del programa es capturar la excepcion que se porduce el intentar dividir por cero. Para ello introducimos los parámetros de entrada V_NUM1 y V_NUM2 y realizamos la división almacenando el resultado en la variable V_RESULTADO

La excepción CX_SY_ZERODIVIDE es manejada en el bloque CATCH. El manejador accede al texto de la instancia de la excepción utilizando el método GET_TEXT. El texto es almacenado en la variable TEXT de tipo STRING y luego mostramos por pantalla mediante un mensaje información

Si ejecutamos el programa e ingresamos los valores 1 y 0 a los parámetros de la pantalla de selección

Se obtendrá la siguiente salida por pantalla


 

 

 


Sobre el autor

Publicación académica de Cristian Darwin Arteaga Diaz, en su ámbito de estudios para el Máster ABAP POO.

SAP Expert


Cristian Darwin Arteaga Diaz

Profesión: Abap Developer - Argentina - Legajo: GP81Q

✒️Autor de: 165 Publicaciones Académicas

🎓Cursando Actualmente: Master Funcional para Consultores ABAP

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Me considero una persona responsable, siempre estoy investigando y capacitandome para adquirir nuevos conocimientos, tengo el gusto de iniciarme en el mundo de abap como desarrollador, es genial.

Certificación Académica de Cristian Arteaga

✒️+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!