Hvordan håndtere unntak enkelt i C++

Hvordan Handtere Unntak Enkelt I C



Uventede hendelser som finner sted mens programmet kjører blir referert til som unntak eller feil. Unntak forekommer under kjøring, og kan ikke fanges opp under kompilering, så de kan forårsake alvorlige problemer i programmet. Å håndtere unntak godt i et C++-program er et hovedmål for en programmerer for å få de ønskede resultatene.

Hvordan håndtere unntak enkelt i C++

Unntakshåndtering i C++ refererer til mekanismen for å oppdage kjøretidsfeil og håndtere dem effektivt, for eksempel håndtering av ugyldige inndata, deling av et tall med null i divisjonsoperasjoner og mange flere.

Unntakshåndtering i C++ involverer tre nøkkelord: prøv, kast og fang. Try-setningen lar brukeren definere kodeblokken som kan føre til et unntak i koden. Throw-nøkkelordet gir et unntak hvis det oppdages etter å ha sjekket blokken under try-nøkkelordet. Catch-nøkkelordet inneholder kodeblokken som kan håndtere unntaket observert i try-blokken.







Eksempel 1: Unntakshåndtering under divisjon

Koden er skrevet for å sjekke unntakene under deling.



#include
ved hjelp av navneområde std ;

int hoved- ( ) {

dobbelt teller, nevner, divisjon ;

cout << 'Skriv inn en tellerverdi: ' ;
spiser >> teller ;

cout <> nevner ;

prøve {


hvis ( nevner == 0 )
kaste 0 ;


inndeling = teller / nevner ;
cout << teller << '/' << nevner << ' = ' << inndeling << endl ;
}

å fange ( int antall_unntak ) {
cout << 'Feil! Divisor kan ikke være  ' << antall_unntak << endl ;
}

komme tilbake 0 ;
}

I dette programmet legger brukeren inn verdien av telleren og nevneren som er deklarert i hoved()-delen. I try-blokken brukes en if-setning for å sjekke unntaket som er om nevneren er null eller ikke. Siden divisjon ikke kan utføres med en nulldeler hvis nevneren er funnet å være 0, vil det gi et unntak og catch-blokken vil returnere et feilargument ellers utføres den enkle divisjonsoperasjonen.







Brukeren legger inn en teller 42 og en 0 i nevneren, som gir et unntak, så programmet returnerer feilargumentet.



Brukeren legger inn en teller 42 og 2 som en nevner, siden det ikke er noe unntak funnet, kommer resultatet etter divisjonen tilbake.

Eksempel 2 Unntakshåndtering for å sjekke alderen

Dette programmet sjekker unntak i brukerens alder.

#include
ved hjelp av navneområde std ;

/*
Her ønsker vi å kaste unntak (alder som unntak) hvis alderen på personen er under 18 år.
*/

int hoved- ( )
{
// sjekker om alderen er over 18 år i prøveblokken.
prøve
{
int alder ;
cout << 'Skriv inn alderen din for å få tilgang: ' ;
spiser >> alder ;

hvis ( alder >= 18 )
{
cout << 'Tilgang godkjent.' ;
}
// tilpasset unntak blir kastet hvis alderen er under 18 år.
ellers
{
kaste ( alder ) ;
}
}
// fanger det kastede unntaket og viser ønsket utgang (tilgang nektet!)
å fange ( int x )
{
cout << 'Tilgang nektet! Du er mindreårig.' << endl ;
}
komme tilbake 0 ;
}

I dette programmet er en variabel med en heltallsverdi definert. Brukeren blir bedt om å legge inn alder og prøve blokksjekker hvis brukerens alder er over eller lik 18. Hvis det ikke er sant, gir den et unntak, og unntaksblokken vil returnere Access nektet! Argument. Ellers vil tilgangen bli gitt.

Brukeren legger inn alderen til å være 12 for å sjekke tilgangsbevilgningen, siden denne alderen er under 18 år, så argumentet Access nektet returneres.

Brukeren legger inn alder 20, da dette er over 18 år, så tilgangen gis til brukeren.

Merk : Hvis det ikke er noen catch-blokk i programmet, vil programmet oppføre seg unormalt og avsluttes uventet i tilfelle unntak.

Konklusjon

Unntakshåndtering i C++ refererer til mekanismen for å oppdage kjøretidsfeil og håndtere dem effektivt. Det involverer tre nøkkelord prøv, kast og fang. Unntaket sjekkes for koden i try-blokken, kast-nøkkelordet kaster unntaket hvis det finnes, og catch-blokken håndterer unntaket som ble kastet for try-blokken. Håndtering av unntak gjør brukeropplevelsen jevn og flott ved å unngå kjøretidsfeil.