En este módulo, aprenderemos cómo manejar errores y depurar programas en MUMPS. La capacidad de identificar y corregir errores es crucial para cualquier programador, y MUMPS ofrece varias herramientas y técnicas para facilitar este proceso.

  1. Introducción al Manejo de Errores

Conceptos Clave

  • Errores en Tiempo de Ejecución: Errores que ocurren mientras el programa está en ejecución.
  • Errores de Sintaxis: Errores en la estructura del código que impiden que el programa se ejecute.
  • Errores Lógicos: Errores en la lógica del programa que producen resultados incorrectos.

Estrategias de Manejo de Errores

  • Uso de Variables de Error: MUMPS permite el uso de variables especiales para capturar y manejar errores.
  • Bloques de Código de Manejo de Errores: Estructuras específicas para capturar y manejar errores en tiempo de ejecución.

  1. Uso de la Variable $ECODE

La variable $ECODE en MUMPS se utiliza para capturar códigos de error. Cuando ocurre un error, $ECODE se establece con un valor que describe el error.

Ejemplo de Uso de $ECODE

SET $ECODE=""
TRY
. ; Intentar ejecutar un código que puede fallar
. SET X=1/0
CATCH
. ; Capturar el error
. WRITE "Ocurrió un error: ", $ECODE, !
. SET $ECODE=""
QUIT

Explicación:

  • SET $ECODE="": Inicializa $ECODE a una cadena vacía.
  • TRY y CATCH: Bloques de código para intentar ejecutar y capturar errores.
  • SET X=1/0: Provoca un error de división por cero.
  • WRITE "Ocurrió un error: ", $ECODE, !: Imprime el código de error capturado.

  1. Uso de la Variable $ZTRAP

La variable $ZTRAP se utiliza para especificar una rutina de manejo de errores que se ejecutará cuando ocurra un error.

Ejemplo de Uso de $ZTRAP

SET $ZTRAP="ERRHANDLER"
SET X=1/0
QUIT

ERRHANDLER
WRITE "Error atrapado en ERRHANDLER", !
SET $ECODE=""
QUIT

Explicación:

  • SET $ZTRAP="ERRHANDLER": Establece ERRHANDLER como la rutina de manejo de errores.
  • SET X=1/0: Provoca un error de división por cero.
  • ERRHANDLER: Rutina que se ejecuta cuando ocurre un error, imprime un mensaje y limpia $ECODE.

  1. Depuración de Programas

Uso de la Comando ZBREAK

El comando ZBREAK se utiliza para establecer puntos de interrupción en el código, permitiendo al programador inspeccionar el estado del programa en puntos específicos.

Ejemplo de Uso de ZBREAK

SET X=10
SET Y=20
ZBREAK  ; Establece un punto de interrupción aquí
SET Z=X+Y
WRITE "El valor de Z es: ", Z, !
QUIT

Explicación:

  • ZBREAK: Establece un punto de interrupción en la línea donde se coloca.
  • Permite al programador inspeccionar las variables X y Y antes de continuar con la ejecución.

Uso del Comando ZWRITE

El comando ZWRITE se utiliza para imprimir el valor de todas las variables en el entorno actual, lo que es útil para la depuración.

Ejemplo de Uso de ZWRITE

SET A=5
SET B=10
ZWRITE  ; Imprime todas las variables y sus valores
QUIT

Explicación:

  • ZWRITE: Imprime todas las variables (A y B) y sus valores actuales.

  1. Ejercicios Prácticos

Ejercicio 1: Manejo de Errores con $ECODE

Escribe un programa que intente dividir dos números y maneje cualquier error de división por cero utilizando $ECODE.

Solución:

SET $ECODE=""
TRY
. SET A=10, B=0
. SET RESULT=A/B
CATCH
. WRITE "Error: División por cero. Código de error: ", $ECODE, !
. SET $ECODE=""
QUIT

Ejercicio 2: Uso de $ZTRAP para Manejo de Errores

Escribe un programa que utilice $ZTRAP para manejar un error de acceso a una variable no definida.

Solución:

SET $ZTRAP="ERRHANDLER"
SET X=UNDEFINEDVAR
QUIT

ERRHANDLER
WRITE "Error: Variable no definida.", !
SET $ECODE=""
QUIT

Ejercicio 3: Depuración con ZBREAK y ZWRITE

Escribe un programa que establezca un punto de interrupción y utilice ZWRITE para imprimir el estado de las variables.

Solución:

SET A=15
SET B=25
ZBREAK  ; Establece un punto de interrupción aquí
SET C=A+B
ZWRITE  ; Imprime todas las variables y sus valores
WRITE "El valor de C es: ", C, !
QUIT

Conclusión

En esta sección, hemos aprendido cómo manejar errores y depurar programas en MUMPS utilizando $ECODE, $ZTRAP, ZBREAK y ZWRITE. Estas herramientas son esenciales para identificar y corregir errores en el código, mejorando la calidad y la robustez de nuestros programas. En el próximo módulo, exploraremos la programación modular en MUMPS, lo que nos permitirá organizar y gestionar mejor nuestro código.

© Copyright 2024. Todos los derechos reservados