Hoe u eenvoudig met uitzonderingen kunt omgaan in C++

Hoe U Eenvoudig Met Uitzonderingen Kunt Omgaan In C



Onverwachte gebeurtenissen die plaatsvinden terwijl het programma actief is, worden uitzonderingen of fouten genoemd. Uitzonderingen komen voor tijdens runtime en kunnen niet worden onderschept tijdens het compileren, waardoor ze ernstige problemen in het programma kunnen veroorzaken. Goed omgaan met uitzonderingen in een C++-programma is een hoofddoel voor een programmeur om de gewenste resultaten te krijgen.

Hoe u eenvoudig met uitzonderingen kunt omgaan in C++

Uitzonderingsafhandeling in C++ verwijst naar het mechanisme waarmee runtimefouten worden gedetecteerd en efficiënt worden afgehandeld, zoals het afhandelen van ongeldige invoer, het delen van een getal door nul bij delingsbewerkingen en nog veel meer.

Bij de afhandeling van uitzonderingen in C++ zijn drie sleutelwoorden betrokken: proberen, gooien en vangen. Met de try-instructie kan de gebruiker het codeblok definiëren dat een uitzondering in de code kan veroorzaken. Het trefwoord throw genereert een uitzondering als het wordt gedetecteerd nadat het blok onder het trefwoord try is gecontroleerd. Het trefwoord catch bevat het codeblok dat de uitzondering kan afhandelen die in het try-blok wordt waargenomen.







Voorbeeld 1: Afhandeling van uitzonderingen tijdens splitsing

De code is geschreven om de uitzonderingen tijdens deling te controleren.



#include
gebruik makend van naamruimte soa ;

int voornaamst ( ) {

dubbele teller, noemer, deling ;

uit << 'Voer een tellerwaarde in: ' ;
aan het eten >> teller ;

uit <> noemer ;

poging {


als ( noemer == 0 )
gooien 0 ;


divisie = teller / noemer ;
uit << teller << '/' << noemer << ' = ' << divisie << eindl ;
}

vangst ( int aantal_uitzondering ) {
uit << 'Fout! Deler kan niet   zijn' << aantal_uitzondering << eindl ;
}

opbrengst 0 ;
}

In dit programma voert de gebruiker de waarde in van de teller en de noemer die zijn gedeclareerd in de sectie main(). In het try-blok wordt een if-instructie gebruikt om de uitzondering te controleren, namelijk of de noemer nul is of niet. Omdat delen niet kan worden uitgevoerd met een nuldeler als de noemer 0 blijkt te zijn, zal er een uitzondering optreden en zal het catch-blok een foutargument retourneren, anders wordt de eenvoudige delingsoperatie uitgevoerd.







De gebruiker voert een teller 42 en een 0 in de noemer in, wat een uitzondering genereert, dus het programma retourneert het foutargument.



De gebruiker voert een teller 42 en 2 in als noemer. Omdat er geen uitzondering is gevonden, keert het resultaat na de deling terug.

Voorbeeld 2 Afhandeling van uitzonderingen om de leeftijd te controleren

Dit programma controleert uitzonderingen in de leeftijd van de gebruiker.

#include
gebruik makend van naamruimte soa ;

/*
Hier willen we een uitzondering maken (leeftijd als uitzondering) als de leeftijd van de persoon jonger is dan 18 jaar.
*/

int voornaamst ( )
{
// controleren of de leeftijd ouder is dan 18 jaar in het try-blok.
poging
{
int leeftijd ;
uit << 'Voer uw leeftijd in om toegang te krijgen tot: ' ;
aan het eten >> leeftijd ;

als ( leeftijd >= 18 )
{
uit << 'Toegang verleend.' ;
}
// aangepaste uitzondering wordt gegenereerd als de leeftijd jonger is dan 18 jaar.
anders
{
gooien ( leeftijd ) ;
}
}
// de gegenereerde uitzondering opvangen en de gewenste uitvoer weergeven (toegang geweigerd!)
vangst ( int X )
{
uit << 'Toegang geweigerd! Je bent minderjarig.' << eindl ;
}
opbrengst 0 ;
}

In dit programma wordt een variabele met een geheel getal gedefinieerd. De gebruiker wordt gevraagd de leeftijd in te voeren en blokcontroles uit te voeren als de leeftijd van de gebruiker hoger dan of gelijk aan 18 is. Als dit niet waar is, genereert het een uitzondering en retourneert het uitzonderingsblok Toegang geweigerd! Argument. Anders wordt de toegang verleend.

De gebruiker voert de leeftijd in op 12 jaar om de toegangsverlening te controleren, aangezien deze leeftijd jonger is dan 18 jaar, dus wordt het argument Toegang geweigerd geretourneerd.

De gebruiker voert de leeftijd van 20 in, aangezien dit boven de 18 is, dus de toegang wordt aan de gebruiker verleend.

Opmerking : Als er geen catch-blok in het programma aanwezig is, zal het programma zich abnormaal gedragen en onverwachts eindigen in geval van uitzonderingen.

Conclusie

Exception Handling in C++ verwijst naar het mechanisme voor het detecteren van runtimefouten en het efficiënt afhandelen ervan. Het gaat om drie sleutelwoorden: proberen, gooien en vangen. De uitzondering wordt gecontroleerd voor de code in het try-blok, het trefwoord throw genereert de uitzondering als deze wordt gevonden, en het catch-blok handelt de uitzondering af die voor het try-blok wordt gegenereerd. Het afhandelen van uitzonderingen zorgt voor een soepele en geweldige gebruikerservaring door runtimefouten te voorkomen.