Heim  >  Artikel  >  Backend-Entwicklung  >  Wie löst und fängt man in C Ausnahmen aus, um ungültige Eingaben zu behandeln?

Wie löst und fängt man in C Ausnahmen aus, um ungültige Eingaben zu behandeln?

DDD
DDDOriginal
2024-11-23 07:48:17952Durchsuche

How do You Throw and Catch Exceptions in C   to Handle Invalid Inputs?

Ausnahmebehandlung: Ausnahmen in C auslösen

Die Ausnahmebehandlung ist eine entscheidende Technik in C, mit der Sie Fehler und ungewöhnliche Situationen effektiv verwalten können. Um robusten und zuverlässigen Code zu schreiben, ist es wichtig zu verstehen, wie man Ausnahmen auslöst, versucht und abfängt.

Ein häufiges Szenario, in dem Ausnahmen nützlich sind, ist, wenn Sie ungültige Eingaben oder Bedingungen behandeln möchten, die während der normalen Programmausführung nicht auftreten sollten . Betrachten wir zum Beispiel eine Funktion vergleichen(int a, int b), die zwei ganze Zahlen vergleicht.

Um den Fall zu behandeln, in dem entweder a oder b negativ ist, können wir die Definition der Vergleichsfunktion wie folgt ändern:

#include <stdexcept>

int compare(int a, int b) {
    if (a < 0 || b < 0) {
        throw std::invalid_argument("received negative value");
    }
}

In diesem Beispiel verwenden wir die throw-Anweisung, um eine Ausnahme auszulösen, wenn einer der Parameter negativ ist. Das std::invalid_argument ist ein integriertes Ausnahmeobjekt, das einem ungültigen Argument entspricht, das an eine Funktion übergeben wird.

Um die von der Vergleichsfunktion ausgelöste Ausnahme zu behandeln, können wir einen Try-Catch-Block verwenden:

try {
    compare(-1, 3);
} catch (const std::invalid_argument& e) {
    // Handle the exception here...
}

Im Try-Block versuchen wir, die Vergleichsfunktion mit potenziell ungültigen Eingaben auszuführen. Wenn eine Ausnahme ausgelöst wird, fängt der Catch-Block sie ab und gibt uns einen Verweis auf das Ausnahmeobjekt e. Wir können dieses Objekt verwenden, um die Ursache der Ausnahme zu ermitteln und entsprechende Maßnahmen zu ergreifen.

Darüber hinaus bietet C Flexibilität bei der Ausnahmebehandlung. Sie können nach Wert werfen und nach Referenz fangen, wie im obigen Beispiel gezeigt. Mit „catch(...)“ können Sie Ausnahmen auch erneut auslösen oder Ausnahmen unabhängig vom Typ abfangen. Mit diesen Funktionen können Sie Ausnahmeszenarien individuell und effizient bewältigen.

Das obige ist der detaillierte Inhalt vonWie löst und fängt man in C Ausnahmen aus, um ungültige Eingaben zu behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn