Fehlerbehandlung ist essentiell in C, um Programme robust zu gestalten.
Diese Lektion behandelt errno, perror, assert und eigene Fehlercodes.
errno ist eine globale Variable, die den letzten Fehlercode speichert.
#include <stdio.h>
#include <errno.h>
FILE *fp = fopen("nicht_existiert.txt", "r");
if(fp == NULL) {
printf("Fehlercode: %d\n", errno);
}
perror gibt eine Fehlermeldung basierend auf errno aus.
if(fp == NULL) {
perror("Fehler beim Öffnen der Datei");
}
assert überprüft Annahmen während der Entwicklung und bricht das Programm ab, falls die Bedingung falsch ist.
#include <assert.h>
int x = -1;
assert(x >= 0); // Programm bricht ab, da Bedingung falsch
#define ERR_DATEI 1
#define ERR_MEMORY 2
if(fp == NULL) return ERR_DATEI;
int *p = malloc(100 * sizeof(int));
if(p == NULL) return ERR_MEMORY;
assert nur während Entwicklung)errno speichert Standardfehlercodesperror gibt Fehlermeldungen ausassert überprüft Bedingungen während der Entwicklung