Behandlung von Fehlern in C++
Diese einfache Anleitung behandelt die Fehler- und Ausnahmebehandlung in C++.
Fehlerbehandlung in C++
In Ihrem Programm in C++ können mehrere Arten von Fehlern auftreten. Einige Fehler erfordern einen Hinweis an den Benutzer.
Sie müssen dem Benutzer eine entsprechende Fehlermeldung geben und das Programm beenden.
Für den Umgang mit Fehlern gibt es mehrere unterschiedliche Wege, die übernommen werden können. Einige davon sind:
- Geben Sie dem Benutzer einige hartcodierte Fehlermeldungen.
- Speichern einiger erwarteter Fehlermeldungen in einigen Variablen und Anzeigen dieser Variablen.
- Ausnahmebehandlung durchführen.
Die erste Methode, einige hartcodierte Fehlermeldungen auszugeben, ist sehr einfach und unkompliziert. Überall dort, wo die Möglichkeit eines Fehlers im Code besteht, zeigen Sie eine Fehlermeldung an und beenden Sie den Code.
Im Falle einer ungültigen Login- oder Passworteingabe können Sie beispielsweise eine Meldung wie diese anzeigen:
cout << "You have entered an incorrect username or password" << endl;
cout << "Try again!" << endl;
Die zweite Methode besteht darin, einige Zeichenfolgen für die mögliche Fehlermeldung zu erstellen und diese Variablen bei Bedarf anzuzeigen.
const string INVALID_LOGIN_ERROR_MESSAGE = "Invalid Username or Password";
// later in the code
cout << INVALID_LOGIN_ERROR_MESSAGE << endl;
Solche Zeichenfolgen können in einer separaten Header-Datei wie ErrorMessages.h
deklariert und diese Header-Datei in Ihre Hauptdatei aufgenommen werden. Der Vorteil solcher Zeichenfolgenliterale besteht darin, die Duplizierung von Code zu verhindern.
Jedes Mal, wenn Sie die Fehlermeldung ändern möchten, müssen Sie sie an einer Stelle ändern (d. h. im Deklarationsteil).
Ausnahmebehandlung in C++
Manche Laufzeitfehler lassen sich auch mit fachmännischen Programmierkenntnissen nicht verhindern. Dies sind Ausnahmen, und wir führen eine Ausnahmebehandlung für solche Fehlertypen durch.
Beispielsweise versuchen wir möglicherweise, auf einen nicht verfügbaren Speicher des Computers zuzugreifen, oder ein API-Benutzer kann illegale Argumente an die Funktion übergeben. Solche Fehlertypen werden mithilfe der Ausnahmebehandlung behandelt.
Um die Ausnahmebehandlung in Ihrem Programm zu verwenden, schließen wir den Codeblock, der einen Fehler erwartet, in einen try
-Block ein. Wann immer also eine Ausnahme auftritt, wird die Steuerung automatisch auf den zugehörigen catch
-Block verlagert, der eine sinnvolle Fehlermeldung anzeigt, bevor das Programm beendet wird.
Betrachten Sie das folgende Beispiel.
#include <iostream>
using namespace std;
int main() {
int n1 = 2, n2 = 0;
try {
if (n2 != 0)
cout << "Division: " << n1 / n2 << endl;
else
throw 0;
} catch (int e) {
cout << "Divide by zero exception " << endl;
}
return 0;
}
Die Ausgabe des obigen Codes lautet: