C++ bietet uns einen strukturierten und eleganteren Ausnahmebehandlungsmechanismus . Dieser strukturierte Mechanismus kann den normalerweise ausgeführten Code und die Ausnahmebehandlungsteile des Programms trennen, wodurch das Programm klarer und einfacher lesbar wird.
Schauen wir uns als Nächstes die Struktur der Ausnahmebehandlung an, die in zwei Teile unterteilt ist:
try{//Normale Programmausführungsanweisung throw(Ausdruck vom Ausnahmetyp);}catch(Ausnahmetyp 1){//Ausnahmebehandlungscode}catch(Ausnahmetyp 2){//Ausnahmebehandlungscode}catch(Ausnahmetyp 3){ / /Ausnahmebehandlungscode}//Folgender Code
Das Obige ist die Codeform der Ausnahmebehandlung in C++ unter Verwendung der drei Schlüsselwörter try , throw und Catch .
Wenn der Code ausgeführt wird, trifft er zuerst auf den Try-Code-Block. Seine Funktion besteht darin, den Ausnahmebehandlungsmechanismus zu starten, die während der Ausführung des Try-Codes aufgetretenen Ausnahmen zu erkennen und ihn dann über throw auszulösen ein konstanter oder variabler Ausdruck. Als nächstes wird es mit dem folgenden Catch-Anweisungsblock abgeglichen (erfasst) und dann wird der entsprechende Code ausgeführt. Wenn kein passender Typ gefunden wird, fahren Sie mit der Ausführung fort. Wenn keine Übereinstimmung gefunden wird, wird die Funktion „terminate()“ automatisch aufgerufen. Die Standardfunktion ist „abort()“, um das Programm zu beenden.
Das Folgende ist eine Ausnahmebehandlung, wenn der Divisor während der Divisionsoperation 0 ist:
#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;try{if(b==0)throwerror!b<0;}catch(constchar*str){cout<<str <<endl;}catch(int){cout<<throwint<<endl;}return0;}
Es ist ersichtlich, dass in try, wenn festgestellt wird, dass b 0 ist, eine Zeichenfolge geworfen wird und dann die Catch-Übereinstimmung eingegeben wird. Offensichtlich wird der erste Catch abgeglichen und der Wert von str ausgegeben verstehen!