Ausnahmebehandlung in C
Implementieren Sie robuste Strategien zur Fehlerbehandlung ohne integrierte Ausnahmebehandlung.
Ausnahmebehandlung in C ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.
Einführung in die Ausnahmebehandlung
Ausnahmebehandlung in C
Im Gegensatz zu Sprachen wie C++ und Java verfügt C über keine integrierte Ausnahmebehandlung.
In dieser Lektion lernen Sie:
- Wie Sie Fehler mithilfe von Rückgabewerten behandeln.
- Wie Sie
setjmpundlongjmpfür die Ausnahmebehandlung verwenden. - Wie Sie
errnozur Behandlung von Systemfehlern verwenden.

Fehler mit Rückgabewerten behandeln
Fehler mit Rückgabewerten behandeln
Die einfachste Möglichkeit, Fehler in C zu behandeln, besteht darin, Rückgabewerte zu verwenden.
Beispiel:
int divide(int a, int b) {
if (b == 0) return -1; // Error code
return a / b;
}
Der Aufrufer prüft den Rückgabewert auf Fehler.
Beispiel: Fehlerbehandlung mit Rückgabewerten
Beispiel: Fehlerbehandlung mit Rückgabewerten
Dieses Programm prüft mithilfe von Rückgabewerten auf eine Division durch null.
#include <stdio.h>
int divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return -1;
}
return a / b;
}
int main() {
int result = divide(10, 0);
if (result != -1) {
printf("Result: %d\n", result);
}
return 0;
}Fehlerbehandlung mit setjmp und longjmp
Fehlerbehandlung mit setjmp und longjmp
Die Funktionen setjmp und longjmp ermöglichen nicht-lokale Sprünge und simulieren so eine Ausnahmebehandlung.
Schritte:
- Verwenden Sie
setjmp(), um einen Wiederherstellungspunkt zu markieren. - Verwenden Sie
longjmp(), um bei einem Fehler dorthin zurückzuspringen.
Beispiel: setjmp und longjmp verwenden
Beispiel: setjmp und longjmp verwenden
Dieses Programm verwendet setjmp und longjmp zur Fehlerbehandlung.
#include <stdio.h>
#include <setjmp.h>
jmp_buf buffer;
void errorHandler() {
printf("Error occurred! Jumping back to safe state.\n");
longjmp(buffer, 1);
}
int main() {
if (setjmp(buffer) == 0) {
printf("Executing main program...\n");
errorHandler();
} else {
printf("Recovered from error.\n");
}
return 0;
}errno für Systemfehler verwenden
errno für Systemfehler verwenden
Die Variable errno speichert Fehlercodes von Systemaufrufen.
Beispiel:
#include
Funktionen wie fopen() setzen errno, wenn Fehler auftreten.
Beispiel: errno für die Dateiverarbeitung verwenden
Beispiel: errno für die Dateiverarbeitung verwenden
Dieses Programm prüft errno, wenn eine nicht vorhandene Datei geöffnet wird.
#include <stdio.h>
#include <errno.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("Error opening file");
}
return 0;
}Bewährte Methoden zur Fehlerbehandlung
Bewährte Methoden zur Fehlerbehandlung
So behandeln Sie Fehler effektiv:
- Prüfen Sie die Rückgabewerte von Funktionen.
- Verwenden Sie
errnofür Systemfehler. - Verwenden Sie
setjmpundlongjmpnur, wenn es notwendig ist.
Zusammenfassung
Zusammenfassung
In dieser Lektion haben Sie gelernt:
- Wie Sie Fehler mithilfe von Rückgabewerten behandeln.
- Wie
setjmpundlongjmpeine Ausnahmebehandlung simulieren. - Wie Sie
errnozur Erkennung von Systemfehlern verwenden.
Damit ist der Abschnitt „Debugging und Fehlerbehandlung in C“ abgeschlossen!

Häufig gestellte Fragen
Ist die Lektion „Ausnahmebehandlung in C“ kostenlos?
Ja — der vollständige Text von „Ausnahmebehandlung in C“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Ausnahmebehandlung in C“?
Implementieren Sie robuste Strategien zur Fehlerbehandlung ohne integrierte Ausnahmebehandlung. Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C Academy zu starten?
Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.
Wie lange dauert die Lektion „Ausnahmebehandlung in C“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?
Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Debugging mit GDB
- Häufige Laufzeitfehler
- Ausnahmebehandlung in C