C++ stellt uns eine Standardklasse für die Ausnahmebehandlung zur Verfügung, die zum Auslösen von Ausnahmen verwendet wird, wenn Funktionen in der C++-Standardbibliothek ausgeführt werden. Die hierarchische Struktur der von C++ bereitgestellten Standardausnahmeklassen ist wie folgt:
Es ist ersichtlich, dass alle Ausnahmeklassen von der Ausnahmebasisklasse Logic_error und runtime_error erben. Es handelt sich um zwei relativ große Kategorien, einschließlich mehrerer Selbstklassen. Sie sind in Tabellen unterteilt, um Logikfehler und Laufzeitfehler darzustellen.
Nennen Sie Beispiele, wie zum Beispiel:
1. Wenn wir new zum Öffnen des Speichers verwenden und nicht genügend Speicherplatz vorhanden ist, wird eine bad_alloc -Ausnahme ausgelöst.
2. Wenn wir Dynamic_cast() verwenden, um eine dynamische Typkonvertierung durchzuführen, und dies fehlschlägt, wird eine bad_typeid -Ausnahme ausgelöst.
3. Wenn der berechnete Wert den durch den Typ dargestellten maximalen Bereich überschreitet, wird eine overflow_error- Ausnahme ausgelöst, die auf einen Operationsüberlauf hinweist. Ebenso zeigt underflow_error einen Operationsunterlauf an.
4. Wenn wir den String-Klassenindex verwenden, dieser jedoch außerhalb der Grenzen liegt, wird eine Out_of_range -Ausnahme ausgelöst.
Warten Sie... warten Sie... bitte finden Sie selbst mehr heraus.
Es ist zu beachten, dass Sie bei Verwendung der mit C++ gelieferten Standard-Ausnahmeklasse die entsprechende Header-Datei einschließen müssen, da die Ausnahme- und bad_Exception-Klassen in der Header-Datei „Exception“ definiert sind und die Klasse „bad_alloc“ in der Header-Datei neu definiert ist. und die Klasse „bad_typeid“ ist in der Header-Datei „typeinfo“ definiert, die Klasse „ios_base::failure“ ist in der Header-Datei „ios“ definiert und andere Ausnahmeklassen sind in „stdexclusive“ definiert.
Im Folgenden zeige ich Ihnen, wie Sie die C++-Standardausnahmeklasse verwenden :
#include<iostream>#include<new>#include<stdexclude>usingnamespacestd;//Ausnahmebehandlung intmain(){string*s;try{s=newstring(www.dotcpp.com);cout<<s->substr( 15,5);}catch(bad_alloc&t){cout<<Exceptionoccurred:<<t.what()<<endl;}catch(out_of_range&t){cout<<Exceptionoccurred:<<t.what()<<endl;} return0;}
Die Laufergebnisse sind wie folgt:
Bitte probieren Sie es selbst aus und lernen Sie den Umgang damit!