C ++ Ausnahmehandling

C ++ Ausnahmehandling
Ausnahme ist ein abnormales Verhalten oder ein Laufzeitfehler. Die Ausnahme ist eine unausgezogene Situation in unserem Programm, in der unser Programm bereit sein sollte, es mit angemessener Antwort zu bewältigen.

Wo Ausnahme auftritt

Wenn wir eine Software ausführen, erwarten wir, dass unsere Software in jeder Situation ordnungsgemäß funktioniert. In einigen Fällen treten jedoch einige Ereignisse auf, wenn der normale Ausführungfluss unserer Software gestoppt wird. Wenn wir also sagen, dass unsere Software robust sein muss, bedeutet dies, dass Software in jeder Situation ordnungsgemäß funktioniert.

Ausnahmebehandlung

C ++ - Ausnahmebehandlung wird verwendet, um die Fehlerbedingung in einem Programm systematisch zu verarbeiten, indem die erforderliche Maßnahmen ergriffen werden. Mit Ausnahmebehandlung können wir einfach verwalten und auf den Laufzeitfehler reagieren.

Versuche, fangen, werfen

  1. Wenn in unserem Programm eine außergewöhnliche Situation auftritt, enthalten wir es in einem Block genannt versuchen Block.
  2. Wenn eine Ausnahme innerhalb des Try -Blocks auftritt, muss sie mit dem Schlüsselwort geworfen werden Wurf.
  3. Diese Ausnahme wird von der gefangen fangen Block. Im Fangblock werden notwendige Maßnahmen ergriffen, um die Ausnahme zu behandeln.

Syntax

versuchen

Catch (type1 arg)

Catch (Typ2 arg)

----------
Catch (typen arg)

Erläuterung
Erstens schreiben wir das Keyword, um das Keyword zu schreiben versuchen. Nachdem wir den Try -Block beendet haben, müssen wir schreiben fangen Sofort blockieren. Wir können mehrere Fangblöcke in Sequenz schreiben. Aber wo Blockende versuchen, müssen alle Fangblöcke sofort geschrieben werden. Wenn wir nach dem Try -Block nicht sofort einen Catch -Block schreiben, kann ein Fehler auftreten. Wir gebrauchen Wurf Schlüsselwort im Try -Block.

Programmierbeispiel 1

# enthalten
Verwenden von Namespace STD;
int main ()

Cout<< “ Exception Handling Program :” ;
versuchen
30 werfen;
Cout<< “ \n Try ” ;

fangen (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Ausgang

Programmierung Erklärung
In diesem Programm -Beispiel versuchen wir zu zeigen, wie Ausnahme auftritt und wie man damit umgeht. In der Hauptfunktion nach dem Schreiben einer Ausgabeanweisung, die wir verwenden versuchen Block. Wurf Schlüsselwort wird im Try -Block verwendet. Nach dem Wurf Keyword verwenden wir eine Nummer 30. Es kann eine Zeichenfolge oder ein Doppel oder eine Schwimmer sein- jede Konstante, die wir verwenden können. Dann schreiben wir eine Cout -Anweisung. Diese Zeile kann jedoch nicht nach der Ausführung des Wurfs ausgeführt werden. Nachdem wir den Try -Block beendet haben, schreiben wir sofort Fangblock. Im Fangblock schreiben wir die Zeile (int e). Mit Hilfe des Keywords, den wir werfen, wird dieser Wert in die E -Variable kommen. Nachdem wir den Catch -Block beendet haben, schreiben wir eine Ausgabemodellanweisung "\ n testen die letzte Zeile". Nun ist die Frage, wann diese Zeile nach der Ausgabemodellanweisung im Fangblock ausgeführt wird?

Regeln des Versuchs, Fangs und werfen Block

  1. Wenn wir versuchen, Try Block zu schreiben, müssen wir Catch Block schreiben.
  2. Wenn wir nur Catch -Block schreiben und keinen Try -Block und Wurf schreiben, tritt Fehler auf.
  3. Wenn wir Wurf und Fangblock schreiben und keinen Try -Block schreiben, tritt Fehler auf.
  4. Wenn wir nur Wurf schreiben und keinen Versuch schreiben, Block zu fangen, tritt kein Fehler auf. Es bedeutet, dass wir Wurf schreiben können, ohne den Try -Block zu schreiben.
  5. Wenn wir mehrere Fangblocks mit unterschiedlichen Argumenten -Argumenten in der Sequenz schreiben, die mit dem Argument der Fang übereinstimmen, akzeptiert er ihn. Dann wird kein anderer Fangblock ausgeführt. Das Programmierbeispiel ist unten angegeben.

Programmierbeispiel 2

# enthalten
Verwenden von Namespace STD;
int main ()

Cout<< “ Exception Handling Program :” ;
versuchen
if (i == 1)
1 werfen 1;
if (i == 2)
werfen 2;
if (i == 3)
werfen 3;
Cout<< “ \n Try ” ;

fangen (double e)
Cout<< “ \n Exception no : ” << e ;

fangen (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Ausgang

F. Wir können mehrere Wurfanweisungen in einem einzigen Try -Block schreiben.

Programmierbeispiel 3

# enthalten
Verwenden von Namespace STD;
int main ()

int i = 3;
Cout<< “ Exception Handling Program :” ;
versuchen
if (i == 1)
1 werfen 1;
if (i == 2)
werfen 2;
if (i == 3)
werfen 3;
Cout<< “ \n Try ” ;

fangen (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Ausgang

G. Wir können Wurfanweisung in einem Try -Block schreiben, ohne einen Wurfwert zu geben.

Programmierbeispiel 4

# enthalten
Verwenden von Namespace STD;
int main ()

Cout<< “ Exception Handling Program :” ;
int i = 3;
versuchen
if (i == 3)
Wurf ;
Cout<< “ \n Try ” ;

catch (int)
Cout<< “ \n Exception no : ” ;

Cout<< “ \n Testing The Last Line ” ;

Ausgang

Erläuterung

Hier schreiben wir Wurf Keyword, ohne einen Wert zu geben, und dann wird das Programm beendet, da hier nicht die richtige Ausnahmebehandlung stattfindet. Infolgedessen wird Catch Block nicht ausgeführt. In der Kompilierungszeit wird kein Fehler auftreten. In der Laufzeit wird das Programm jedoch mit einer Nachricht beendet, die „ohne aktive Ausnahme beendet“ beendet wird.

Abschluss

Wenn wir uns ausführlich über die Ausnahmebearbeitung besprechen, lernen wir hier, dass das Programm bereit sein muss, diese abnormale Situation zu verwalten, wenn eine abnormale Situation auftritt.