Código de error


Código de error

En programación, los códigos de error son mensajes numerados que corresponden a errores en una aplicación específica. Se usan a menudo para identificar fallos de hardware, software o una entrada de datos incorrecta del usuario, en lenguajes de programación que carecen de manejo de excepciones, aunque a veces se usan conjuntamente a ellas. Los códigos de error no deben confundirse con los valores de retorno, aunque ambos se usen conjuntamente en el manejo de errores. Algunos de los códigos de error más severos visibles al usuario son los códigos de error en la pantalla azul de la muerte de Windows.

Contenido

Ejemplos

En lenguajes de programación sin manejo de excepciones (como el lenguaje de programación C), los códigos de error suelen almacenarse en variables globales con nombres como errno. Los códigos de error se identifican por un número, indicando cada uno un motivo de fallo. En una aplicación que use códigos de error, cada función suele tener un valor de retorno que indica que se produjo un fallo. A continuación se puede comprobar el valor disponible en la variable global para determinar el motivo que hizo fallar a la función. Por ejemplo, para indicar que falló la apertura de un archivo, una función suele establecer la variable global al código de error indicando el motivo del fallo y devolver un manipulador de fichero no válido, tal y como muestra el siguiente ejemplo:

/* intentamos abrir ''archivo'' para lectura*/
FILE *pFichero = fopen("archivo", "r"); /* if file cannot be opened, print error number and error string */
if(pFichero == NULL) 
printf("No se puede abrir el archivo, error nº %i, descripción: %s\n", errno, strerror(errno));

Puesto que los códigos de error acostumbran a ser variables globales, pueden ser leídas o escritas desde cualquier porción del programa. Como con cualquier variable global, esto es un problema en entornos multihilo, puesto que la variable puede ser modificada por más de un hilo, causando una condición de carrera. Para arreglar este problema, POSIX establece que errno debe ser una variable local al hilo[cita requerida].

POST <SOCURCE LANG"C">

Códigos de error y manejo de excepciones

Los códigos de error están lentamente desapareciendo según los nuevos lenguajes de programación orientados a objetos los reemplazan con excepciones. Las excepciones tienen la ventaja de ser tratadas con bloques específicos de código, separados del resto. Aunque se considera una mala práctica en la metodología que usa códigos de error y valores de retorno no comprobar los valores de retorno para mirar si la función falló, a menudo los programadores no comprueban si hubo algún error. Esta negligencia puede causar efectos no deseados, puesto que errores ignorados pueden causar fallos más severos posteriormente en el programa.

La implementación de las excepciones en cambio, al separar la gestión de errores de la lógica del programa, los hace más fáciles de escribir y entender, puesto que un único código de manejo de errores puede gestionar errores de múltiples funciones. La gestión de excepciones hace también el código más legible que las implementaciones con códigos de error, puesto que la gestión de excepciones no rompe la lógica del programa con múltiples comprobaciones de errores.

Errores comunes

Si estás intentando correr un programa bastante antiguo en sistemas con una versión reciente de libc, puedes encontrarte con las siguientes situaciones dependiendo de la versión:

  • El programa funciona pero genera un warning:
Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.
  • El programa no funciona, dando el error
symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

errno está definido por el estándar ISO C como un lvalue modificable de tipo entero, y no debe declararse explícitamente. Era común en C tradicional declarar errno manualmente (extern int errno;) en vez de incluir <errno.h>. Esto ya no funciona en las últimas versiones de libc. En tales situaciones, hay que modificar el código fuente para reemplazar todos los extern int errno; con el include #include <errno.h>. No obstante, en versiones muy antiguas de sistemas UNIX, puede no estar disponible <errno.h> y necesitarse la declaración.

Véase también

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Código Gray — de dos bits 00 01 11 10 Código Gray de tres bits 000 001 011 010 110 111 101 100 Código Gray de cuatro bits 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 El código binario reflejado o código Gray, nombrado así en …   Wikipedia Español

  • Error — Saltar a navegación, búsqueda Error o erróneo, pueden referirse a distintos conceptos en distintos campos de conocimiento: Psicología y planificación: Error de concepto: inexactitud o equivocación al producir en la mente una idea sobre algo.… …   Wikipedia Español

  • Error 404 — HTTP 404, error 404 o no encontrado es un código de estado HTTP que indica que el navegador web ha sido capaz de comunicarse con el servidor, pero no existe el fichero que ha sido pedido. Por ejemplo, si se accede a la URL… …   Wikipedia Español

  • Código de barras — EAN13 El código de barras es un código basado en la representación mediante un conjunto de líneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada información. De este modo, el código de barras… …   Wikipedia Español

  • Código Morse — Saltar a navegación, búsqueda Código Morse, publicación de 1922 El código Morse o también conocido como alfabeto Morse es un sistema de representación de letras y números mediante señales emitidas de forma intermitente. Contenido …   Wikipedia Español

  • Código morse — Código Morse, publicación de 1922. El código morse o también conocido como alfabeto morse es un sistema de representación de letras y números mediante lucesemitidas de forma intermitente. Contenido 1 Historia …   Wikipedia Español

  • Error de software — Saltar a navegación, búsqueda Foto del origen de la leyenda acerca del primer bug informático conocido Un defecto de software (computer bug en inglés), es el resultado de un fallo o deficiencia durante el proceso de creación de programas de… …   Wikipedia Español

  • Error de división del Intel Pentium — Saltar a navegación, búsqueda Contenido 1 Introducción 2 Repercusiones 3 Comprobación del error 4 Enlaces ext …   Wikipedia Español

  • Código Hamming — En informática, el código de Hamming es un código detector y corrector de errores que lleva el nombre de su inventor, Richard Hamming. En los datos codificados en Hamming se pueden detectar errores en un bit y corregirlos, sin embargo no se… …   Wikipedia Español

  • Código Lyoko — Code Lyoko Logo de Código Lyoko Título Código Lyoko Género Ficción Creado por Thomas Romain y Tania Palumbo …   Wikipedia Español