Wie man Fehler in der C -Sprache umgeht

Wie man Fehler in der C -Sprache umgeht
C ist eine starke Sprache für die Programmierung, die häufig bei der Erstellung von Systemsoftware, eingebetteten Geräten sowie Betriebssystemen verwendet wird. Die Behandlung von Fehlern in C kann dagegen eine schwierige Aufgabe für diejenigen sein, die keine kompetenten Programmierer sind. Im folgenden Abschnitt werden wir einige grundlegende Ansätze für den Umgang mit Fehlern in der C -Programmierung betrachten.

Wie man Fehler in der C -Sprache umgeht

Es gibt im Allgemeinen zwei Arten von Fehlern, die in der C -Programmierung vorhanden sind, die wie folgt sind:

  • Syntaxfehler
  • Laufzeitfehler

Was sind Syntaxfehler?

Syntaxfehler werden durch falsche Syntax im Code verursacht, und der Compiler kann sie während des Zusammenstellungsprozesses leicht erkennen. Um Syntaxfehler zu vermeiden, ist es besser, die grundlegenden Syntaxregeln der C -Programmierung zu verstehen.

Was sind Fehlern von Laufzeiten?

Laufzeitfehler treten beim Ausführen des Programms auf und können verschiedene Probleme wie Speicherlecks, Segmentierungsfehler und falsche Verwendung von Zeigern verursachen.

Wie man mit Fehlern umgeht

Um diese Fehler zu bewältigen, müssen wir den Hauptgrund für das Auftreten dieser Fehler verstehen, damit wir sie entsprechend ansprechen können.

In C kann man integrierte Fehlerkorrekturroutinen verwenden, um Fehler zu verwalten. C-Sprache bietet mehrere integrierte Funktionen, mit denen Fehler identifiziert und behoben werden können. Im Folgenden finden Sie die Liste der Handhabungsfunktionen, die Sie in der C -Programmierung verwenden können:

  • Verwenden Sie die Funktion perror ()
  • Verwenden von Sterrorfunktion
  • Verwenden von Exit () -Funktion
  • Verwenden von Assert () Funktion

1: Verwenden Sie die Funktion perror ()

perror () ist eine integrierte Funktion in der C-Programmierung, mit der eine Fehlermeldung auf der Standardfehlerausgabe (STDDERR) basierend auf dem durch einen vorherigen Funktionsaufruf festgelegten Fehlercode drucken wird, der fehlgeschlagen ist. Wenn es sich um eine Zeichenfolge handelt und nicht null ist, wird er vor einem Fehlertext geschrieben. Wenn Sie beispielsweise mit Dateien arbeiten und ein Dateivorgang fehlschlägt, können Sie verwenden perror () Funktion zum Drucken einer Fehlermeldung für die Standardfehlerausgabe:

#enthalten
#enthalten
#enthalten
int main ()
Datei *fp;
fp = fopen ("no_file.txt "," r ");
if (fp == null)
printf ("Anzahl eines Fehlers: %d \ n", errno);
Perror ("Der Fehler ist:");

Das obige C definiert die main () -Funktion, die versucht, eine nicht existierende Datei im Lesemodus mithilfe zu öffnen fopen () Funktion. fopen () gibt null und erstellt den globalen Errno -Wert, da die Datei fehlt. Das Programm druckt dann die Fehlernummer mit Errno und einer Fehlermeldung mithilfe einer Fehlermeldung aus perror ().

Ausgang

2: Verwenden von Strerror () Funktion

Der Strerror () Die Funktion ist eine integrierte Funktion für die Fehlerbehandlung, mit der eine Fehlermeldung von Menschen lesbar für einen bestimmten Fehlercode abgerufen wird. Die globale Variable errno wird normalerweise als Fehlercodeeingabe in die verwendet Strerror () Funktion. Wenn während der Ausführung eines Programms ein Fehler auftritt, wird der Fehlercode normalerweise durch die System- oder Bibliotheksfunktion auf einen bestimmten Wert eingestellt. Dieser Fehlercode kann dann verwendet werden, um die entsprechende Fehlermeldung mit dem nachzuschlagen Strerror () Funktion.

Der Strerror () Die Funktion liefert eine Null-terminierte Zeichenfolge, die eine Warnmeldung für den angegebenen Fehlercode enthält. Diese Fehlermeldung kann in die Konsole gedruckt oder dem Benutzer angezeigt werden, um Informationen über die Ursache des Fehlers bereitzustellen.

#enthalten
#enthalten
#enthalten
int main ()
Datei *fp = fopen ("no_file.txt "," v ");
if (fp == null)
printf ("Fehler in einer Öffnungsdatei auftritt: %s \ n", Strerror (errno));

Der obige Code definiert die main () -Funktion fopen () Funktion. fopen () gibt null aus und aktualisiert den globalen Errno -Indikator, da die geöffnete Datei nicht vorhanden ist. Das Programm druckt dann die Fehlermeldung mithilfe mit Strerror () Funktion zum Umwandeln des Fehlercodes im ERRNO in eine menschliche lesbare Fehlermeldung.

Ausgang

3: Verwenden von Exit () -Funktion

Der Ausfahrt() Die Funktion ist eine weitere nützliche Möglichkeit, für die Fehlerbehandlung verwendet zu werden, die das Programm sofort mit einem angegebenen Exit -Status endet. Wenn das Programm aufgrund eines tödlichen Fehlers oder einer außergewöhnlichen Situation nicht fortgesetzt werden kann, beendet es es.

Die METHODE EXIT () akzeptiert eine Ganzzahleingabe, die den Exit -Status des Programms darstellt. Ein Wert von Null zeigt eine akzeptable Beendigung an, aber ungleich Nullwerte geben einen Fehler oder eine aberrante Beendigung an.

#enthalten
#enthalten
int main ()
Datei *file = fopen ("no_file.txt "," z ");
Wenn (!Datei)
printf ("Fehler: Die Datei nicht öffnen \ n");
Ausgang (1);

Das obige Programm öffnet eine Datei mit dem Namen "keine Datei.txt" im 'z' -Modus. Wenn die Datei nicht gefunden wird, druckt sie eine Fehlermeldung und beendet das Programm mit der Ausfahrt() Funktion mit einem Statuscode von 1.

Ausgang

4: Verwenden von Assert () Funktion

Der behaupten() Funktion ist ein nützliches Debugging -Tool für die Fehlerbehandlung während der Programmentwicklung. Es ermöglicht Entwicklern, logische oder Programmierfehler zu fangen und zu behandeln, die zu undefinierten Verhaltens- oder Programmabstürzen führen können.

Bei Verwendung der behaupten() Funktion, ein logischer Ausdruck wird als Argument übergeben. Nicht. Wenn der Ausdruck jedoch auf False bewertet wird, die behaupten() Die Funktion druckt eine Fehlermeldung an die Konsole und endet das Programm sofort.

#enthalten
#enthalten
int main ()
int a = 5;
Assert (a == 10);
printf ("a ist %d \ n", a);
Rückkehr 0;

Im obigen Code wird die Assert -Funktion verwendet, um zu prüfen, ob der Wert von a gleich 10 ist. Wenn a nicht gleich 10 ist, hält das Programm eine Fehlermeldung an und zeigt an. Wenn a gleich 10 ist, wird das Programm weiterhin normal ausgeführt und den Wert von x drucken.

Ausgang

Abschluss

C bietet mehrere Funktionen für die Fehlerbehandlung, mit der Programmierer die Zuverlässigkeit und Robustheit ihrer Programme verbessern können. Diese Funktionen umfassen Perror (), Strerror (), exit () Und behaupten(). Bei Verwendung dieser Funktionen ist es wichtig, Best Practices für die Fehlerbehandlung zu befolgen, z.