Alle Ausnahmen in C++ abfangen
- Ausnahmebehandlung in C++
- Alle Ausnahmen in C++ abfangen
- Schritte zum Abfangen aller Ausnahmen in C++
C++ ist eine leistungsstarke Allzweck-Programmiersprache, die eine statisch typisierte, formfreie, multiparadigmatische, kompilierte Sprache ist. C++ hat viele Programme und Anwendungen erstellt, einschließlich des Windows-Betriebssystems.
In C++ 11 verwenden wir den neuen aktuellen Ausnahmemechanismus, um alle Ausnahmen abzufangen. In diesem Artikel wird detailliert beschrieben, wie alle Ausnahmen in C++ behandelt werden.
Beginnen wir mit der Einführung der Ausnahmebehandlung.
Ausnahmebehandlung in C++
Die Ausnahmebehandlung ist ein Mechanismus, der in Programmiersprachen verwendet wird, um mit Fehlern und Ausnahmen umzugehen. C++ bietet eine Vielzahl von Funktionen zur Ausnahmebehandlung, darunter das Abfangen oder Ignorieren bestimmter Arten von Ausnahmen und die Verwendung von Destruktoren für die Bereinigung.
Es hilft Programmierern, häufige Fehler wie Pufferüberläufe und Speicherlecks zu vermeiden, die im Allgemeinen dazu führen, dass Programme abstürzen oder sich unregelmäßig verhalten. Die Ausnahmebehandlung erleichtert Programmierern auch den Umgang mit fehleranfälligem Code, indem sie in Ausnahmebehandlungscode gekapselt wird, der separat getestet und dann einfach deaktiviert werden kann, wenn der Programmierer dies wünscht.
Die Ausnahmebehandlung ermöglicht es Programmierern, robuste Programme zu schreiben, die unvorhergesehene Situationen ohne Absturz bewältigen und sich von ihnen erholen können, wenn sie auftreten.
Die Ausnahmebehandlung kann entweder synchron oder asynchron sein.
Eine synchrone Ausnahme wird generiert, wenn ein Problem im Code behandelt werden kann, ohne die Ausführung des Programms zu unterbrechen. Synchrone Ausnahmen werden auch als geprüfte Ausnahmen bezeichnet.
Andererseits wird eine asynchrone Ausnahme generiert, wenn ein Problem im Code vorliegt, das nicht ohne Unterbrechung der Programmausführung behandelt werden kann. Asynchrone Ausnahmen werden auch als ungeprüfte Ausnahmen bezeichnet.
Alle Ausnahmen in C++ abfangen
Der neue aktuelle Ausnahmemechanismus ist eine Möglichkeit, alle Ausnahmen in C++ abzufangen; es wurde in C++11 eingeführt. Es ist eine Alternative zu der altmodischen Technik, nur einige Ausnahmen mit try-catch
-Blöcken abzufangen.
Diese neue Methode hat einige Merkmale, die sie der alten vorzuziehen machen.
Der alte Weg bestand darin, das Schlüsselwort throw
zu verwenden, um eine Ausnahme auszulösen und sie mit einem try-catch
-Block abzufangen. Die neue Methode besteht darin, das Schlüsselwort throw
zu verwenden, gefolgt von einer Liste mit Arten von Ausnahmen, die wir abfangen möchten.
Es kann mit jedem Ausnahmetyp verwendet werden, nicht nur mit std::exception
, solange Sie eine Möglichkeit haben, ein Objekt zu speichern und weiterzugeben, das den Ausnahmetyp darstellt.
Darüber hinaus können Sie mit dem neuen System eine beliebige Anzahl von Funktionen angeben, die verschiedene Arten von Ausnahmen abfangen können. Im Gegensatz zum alten System muss nicht für jede Ausnahmeart eine separate Funktion verwendet werden.
Schritte zum Abfangen aller Ausnahmen in C++
Die folgenden Schritte sind erforderlich, um alle Ausnahmen in C++ abzufangen:
-
Deklarieren Sie eine Klasse, die als Ausnahmehandler verwendet werden soll.
-
Definieren Sie, welche Ausnahmen von diesem Handler abgefangen werden sollen.
-
Lassen Sie die Hauptfunktion den neuen C++11-Ausnahmemechanismus mit einer Instanz der Klasse aufrufen, die zum Abfangen von Ausnahmen verwendet wird.
-
Schreiben Sie den Code, der eine Ausnahme auslösen kann, und stellen Sie sicher, dass der aktuelle Ausnahmemechanismus sie abfängt.
Der neue C++11-Ausnahmemechanismus erleichtert es Programmierern, sicherzustellen, dass sie alle möglichen Laufzeitfehler in ihrem Code abfangen, ohne manuell try-catch
-Blöcke für jeden von ihnen schreiben zu müssen.
Sehen wir uns ein Beispiel für die try-catch
-Anweisung an.
#include <iostream>
using namespace std;
int main() {
try {
throw 5;
} catch (char *hello) {
cout << "Just a Demo of C++11" << hello;
} catch (...) {
cout << "Stop Here\n";
}
return 0;
}
Klicken Sie hier, um die Live-Demonstration des obigen Codes zu überprüfen.
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook