Capítulo 15. Proceso de errores

Códigos de error

Cuando ocurre un error, Logo toma los pasos siguientes. Primero, si hay una variable definida llamada ERRACT, Logo toma su valor como una lista de instrucciones y la ejecuta. Puedes usar la operación ERROR dentro de estas instrucciones (sólo una vez) para examinar la condición de error. Si la lista de instrucciones ejecuta PAUSA, entonces se escribe el mensaje de error antes de que la pausa ocurre.

Hay ciertos errores que son «recuperables». Por uno de aquellos errores, si la lista de instrucciones devuelve un valor, se usa ese valor en lugar del expresión que causó el error. (Si las instrucciones en ERRACT ejecutan PAUSA y el usuario, del modo pausado, ejecuta SIGUE con un argumento, entonces PAUSA devuelve el valor de ese argumento, y, por consiguiente, es lo que la lista de instrucciones de ERRACT devuelve, también.)

Es posible que una lista de instrucciones de ERRACT devuelva un valor no apropiado para el contexto o devuelva ningún valor cuando el contexto necesite uno. Como resultado, el mismo condición de error puede recurrir para siempre.

Mientras que se ejecuta la lista de instrucciones de ERRACT se ignora el valor de ERRACT para asegurar que un error en la lista de instrucciones no causa un bucle infinito. En particular, un error durante una pausa no causa una pausa-dentro-de-una-pausa.

Si ERRACT no tiene un valor, Logo maneja el error generando un LANZA "ERROR interno. Si no atrapas esta LANZA con un ATRAPA "ERROR en tu programa, se atrapa el error eventualmente el alto nivel interactivo o un bucle de pausa, que escribe el mensaje de error. Una ejecución de ATRAPA "ERROR tiene precedencia sobre ERRACT.

Si un desbordamiento aritmético de coma flotante ocurre, o si se ejecuta una función de dos argumentos (como POTENCIA) con una combinación de malos argumentos, el mensaje «no le gustó recibir» refiere al segundo argumento, pero deberías tomarlo como refiriendo a la combinación.


SourceForge.net Logo