En este módulo, aprenderemos cómo manejar errores en REXX. El manejo de errores es una parte crucial de cualquier lenguaje de programación, ya que permite que nuestros programas respondan de manera adecuada a situaciones inesperadas y mantengan su estabilidad.

Conceptos Clave

  1. Tipos de Errores: En REXX, los errores pueden ser de sintaxis, de ejecución o lógicos.
  2. Instrucción SIGNAL: Utilizada para desviar el flujo del programa cuando ocurre un error.
  3. Instrucción CALL ON ERROR: Permite definir una rutina de manejo de errores.
  4. Instrucción EXIT: Utilizada para finalizar un programa de manera controlada.

Tipos de Errores

Errores de Sintaxis

Estos errores ocurren cuando el código no sigue las reglas del lenguaje REXX. Por ejemplo, una instrucción mal escrita o una falta de paréntesis.

/* Ejemplo de error de sintaxis */
say "Hola Mundo

Errores de Ejecución

Ocurren durante la ejecución del programa, como intentar dividir por cero o acceder a un archivo inexistente.

/* Ejemplo de error de ejecución */
a = 10 / 0

Errores Lógicos

Son errores en la lógica del programa que producen resultados incorrectos, aunque el código se ejecute sin problemas.

/* Ejemplo de error lógico */
a = 10
b = 20
c = a - b  /* Debería ser a + b */

Instrucción SIGNAL

La instrucción SIGNAL se utiliza para desviar el flujo del programa a una etiqueta específica cuando ocurre un error.

/* Ejemplo de uso de SIGNAL */
signal on syntax name ErrorHandler

/* Código que puede causar un error */
a = 10 / 0

exit

ErrorHandler:
say "Ocurrió un error de sintaxis"
exit

Explicación del Código

  • signal on syntax name ErrorHandler: Configura un manejador de errores de sintaxis que redirige a la etiqueta ErrorHandler.
  • a = 10 / 0: Esta línea causará un error de ejecución.
  • ErrorHandler:: Etiqueta a la que se redirige cuando ocurre un error.

Instrucción CALL ON ERROR

La instrucción CALL ON ERROR permite definir una rutina de manejo de errores que se ejecutará cuando ocurra un error.

/* Ejemplo de uso de CALL ON ERROR */
call on error name ErrorHandler

/* Código que puede causar un error */
a = 10 / 0

exit

ErrorHandler:
say "Ocurrió un error de ejecución"
exit

Explicación del Código

  • call on error name ErrorHandler: Configura un manejador de errores de ejecución que redirige a la etiqueta ErrorHandler.
  • a = 10 / 0: Esta línea causará un error de ejecución.
  • ErrorHandler:: Etiqueta a la que se redirige cuando ocurre un error.

Instrucción EXIT

La instrucción EXIT se utiliza para finalizar un programa de manera controlada, opcionalmente devolviendo un código de estado.

/* Ejemplo de uso de EXIT */
say "Este es el final del programa"
exit 0

Explicación del Código

  • exit 0: Finaliza el programa devolviendo un código de estado 0, que generalmente indica una terminación exitosa.

Ejercicio Práctico

Ejercicio 1: Manejo de Errores de Ejecución

Escribe un programa en REXX que intente abrir un archivo inexistente y maneje el error de manera adecuada.

/* Ejercicio de manejo de errores de ejecución */
call on error name FileErrorHandler

/* Intentar abrir un archivo inexistente */
file = "archivo_inexistente.txt"
call linein file

exit

FileErrorHandler:
say "Error: No se pudo abrir el archivo"
exit

Solución

/* Solución del ejercicio de manejo de errores de ejecución */
call on error name FileErrorHandler

/* Intentar abrir un archivo inexistente */
file = "archivo_inexistente.txt"
call linein file

exit

FileErrorHandler:
say "Error: No se pudo abrir el archivo"
exit

Explicación del Código

  • call on error name FileErrorHandler: Configura un manejador de errores de ejecución que redirige a la etiqueta FileErrorHandler.
  • call linein file: Intenta leer una línea del archivo especificado, lo que causará un error si el archivo no existe.
  • FileErrorHandler:: Etiqueta a la que se redirige cuando ocurre un error, mostrando un mensaje de error y finalizando el programa.

Conclusión

En esta sección, hemos aprendido cómo manejar errores en REXX utilizando las instrucciones SIGNAL, CALL ON ERROR y EXIT. El manejo adecuado de errores es esencial para crear programas robustos y confiables. En el próximo módulo, exploraremos las operaciones de entrada/salida de archivos en REXX.


Con esto, hemos cubierto el manejo de errores en REXX. Asegúrate de practicar los ejemplos y ejercicios proporcionados para reforzar tu comprensión. ¡Nos vemos en el siguiente módulo!

© Copyright 2024. Todos los derechos reservados