Fehlerbehandlung

Fehlerbehandlung ist essentiell in C, um Programme robust zu gestalten. Diese Lektion behandelt errno, perror, assert und eigene Fehlercodes.

1. errno

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);
}

2. perror

perror gibt eine Fehlermeldung basierend auf errno aus.
if(fp == NULL) {
    perror("Fehler beim Öffnen der Datei");
}

3. assert

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

4. Eigene Fehlercodes

Programme können eigene Fehlercodes definieren und zurückgeben.
#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;

5. Best Practices

6. Zusammenfassung