Gestión de errores

Hemos visto que casi todas las funciones mostradas hasta el momento incluyen un parámetro de tipo GError. Este es un tipo de datos que será incluido en GLib 2.0, pero que ya tenemos disponible en GConf, para así luego facilitar la transición. Como se puede adivinar por su nombre, es un tipo de datos que nos permite recibir información acerca de errores desde GConf, de forma que tengamos una información detallada del error (una descripción, un código de error, ...).

La forma correcta de usar estos parámetros de tipo GError es pasando un puntero a un puntero en el que GConf copiará la información del error en caso de que haya uno. Así, por ejemplo:

	GError *error = NULL;

	gconf_engine_set_int(engine, "/apps/gnome/mail", 0, &error);
	if (error) {
		/* se produjo un error, mostrar información */
		printf("Error %d: '%s'\n", error->num, error->message);
	}
      

La estructura GError contiene dos campos públicos, que son los dos que se muestran en el ejemplo anterior: num, que contiene un entero que indica el código del error (los códigos de error válidos podemos consultarlos en los ficheros de cabecera de GConf), y message, que contiene una cadena con la descripción del error.