Hola! Buenas tardes a todos! Estoy estudiando las excepciones en ABAP y no consigo entender que es exactamente y porqué se utiliza, estoy un poco atascada con este tema.
¿Podría alguien aclararme esta duda? Gracias.
Un saludo, Virginia
Hola! Buenas tardes a todos! Estoy estudiando las excepciones en ABAP y no consigo entender que es exactamente y porqué se utiliza, estoy un poco atascada con este tema.
¿Podría alguien aclararme esta duda? Gracias.
Un saludo, Virginia
Hola,
Las excepciones en abap se colocan en los módulos de funciones, cuando se produce algun error. Esta excepcion sirve para cuando llamas a la funcion y da el error, te cambie el valor de sy-subrc. Si no tienes excepciones, el valor de sy-subrc va a ser siempre cero, y no puedes controlar dichos errores. Por favor avisanos si necesitas más detalle.
Saludos.
Hola Virginia, las excepciones se utilizan para controlar excepciones de la función en caso que se encuentre alguna anomalía en dicha función.
Cuando creas tu modulo de función, en la pestaña EXCEPTIONS, se declaran las excepciones que se requieren controlar (tú le das valores: ejem. 1,2,3,etc. los cuales te los regresa cuando termina la función) en la Función, por ejemplo división entre cero, algún parámetro no encontrado, etc.
Saludos
Solo para complementar…tambien las puedes usar en metodos !!!
Las excepciones de manera general, son aquellas situaciones/eventos/resultados que no esperamos o controlamos.
Por ejemplo, si tenemos una variable de tipo entero y le asignamos/igualamos con un valor de diferente tipo (no entero), se producira un error, si esta situacion la conocemos, la podemos controlar, por ejemplo:
Una division entre cero, sera algo que podrias encontrar en todos los lenguajes de programacion (incluso en la calculadora de windows)
Ahora el ejemplo ABAP:
REPORT zprueba_abap.
* Prueba de división por cero sin capturar excepción
DATA: resultado TYPE p DECIMALS 2,
ref_exc TYPE REF TO CX_ROOT,
error TYPE STRING.
PARAMETERS: p_num1 TYPE i DEFAULT '10',
p_num2 TYPE i DEFAULT '0'.
resultado = p_num1 / p_num2.
WRITE: 'El resultado es: ', resultado.
Si ejecutas este codigo, obtendras un error y simplemente te sacara del programa.
Si usas el manejo de excepciones, podras “controlar” el error (handling):
REPORT zprueba_abap.
* Prueba de división por cero capturando la excepción
DATA: resultado TYPE p DECIMALS 2,
ref_exc TYPE REF TO CX_ROOT,
error TYPE STRING.
PARAMETERS: p_num1 TYPE i DEFAULT '10',
p_num2 TYPE i DEFAULT '0'.
TRY.
resultado = p_num1 / p_num2.
WRITE: 'El resultado es: ', resultado.
CATCH cx_sy_zerodivide INTO ref_exc.
error = ref_exc->get_text( ).
MESSAGE error TYPE 'I'.
ENDTRY.
En lugar del error, obtendras un mensaje y no te sacara del programa. (En este punto mediante tu codigo, podrias pedir que corrijan o tomar alguna medida)
Espero que la explicacion te sea util.
Saludos!!
Fuente Ejemplo:
h_tp://www.teknodatips.com.ar/sap-netweaver/267-abap-objects-tutorial-manejo-excepciones.html
en ultraresumen son para que el programa no se caiga (dump, error de sistema) para cierto tipo de errores, cuando estos errores se producen se termina la ejecución del programa. También existen excepciones que no son para errores criticos.
saludos,
Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.