Hvordan implementere unntakshåndtering i C ++?



Denne artikkelen vil hjelpe deg å forstå hva som er unntaksbehandling og hvordan du implementerer unntaksbehandling i C ++ med praktisk demonstrasjon.

Unntak er unormale forhold i løpetid eller kompileringstid. er et veldig viktig konsept i c ++. Denne artikkelen vil introdusere deg for unntaksbehandling i C ++ sammen med dens forskjellige typer.

Følgende tips vil bli dekket i denne artikkelen,





Så la oss komme i gang da,

Unntakshåndtering i C ++

Typer av unntak

Det er to typer unntak,



Kjøretid Unntak

Det er et unntak fanget i løpetid.

sette klassesti i java

Unntak for kompileringstid



Det er et unntak fanget i løpet av kompileringstiden.

Fortsetter med denne Exception Handling-artikkelen i C ++,

Hva er unntakshåndtering?

Feil forstyrrer normal gjennomføring av et program. Unntakshåndtering er veldig nødvendig, og det er prosessen med å håndtere feil eller unntak. Den sørger for at utførelsen av programmet ikke påvirkes av unntakene og håndterer dem sakte uten å forårsake noe problem for programkjøringen.

Når du vurderer unntakshåndtering, er det tre begreper knyttet til det,

Prøve

Koden inne i denne blokken er som en prøvekode, som kan gi et unntak. Dette unntaket er fanget inne i fangstblokken.

Å fange

Koden i denne blokken kjøres når koden i prøveblokkene kaster et unntak.

Kaste

Dette nøkkelordet brukes til å kaste et unntak når det oppstår. Unntaket sendes til unntaksbehandleren.

Syntaks:

Koden i prøveblokken kjøres. Hvis det genereres en feil, kaster nøkkelordkastet unntaket til unntaksbehandleren, det vil si fangstblokken. Fangstblokken utførte deretter koden, som er inne i blokken, og håndterte dermed unntaket.

La oss ta en titt på eksempelkode for unntaksbehandling i c ++

Eksempelkode

# inkludere bruk av navneområdet std prøv {// kode for prøv kast og ldquoexception & rdquo} fangst (unntak) {// kode for fangst} int hoved () {int x = 1 prøv {cout<< 'Try Block: '<

Produksjon:

Output - Unntakshåndtering i C ++ - Edureka

Forklaring

Dette programmet demonstrerer unntakshåndtering. Vi har en variabel x, som er tildelt verdien 1. Da har vi starten på prøveblokken. I denne blokken har vi en if-setning med betingelsen x<10.

I vårt tilfelle er tilstanden sant da x er en. Programmet kaster deretter et unntak, og kontrollen skifter til fangstblokk. Vi utfører tilstanden i fangstdel og går ut av blokken.

fangst (...) {kostnad<< 'Default Exceptionn'<

Til slutt utfører vi de gjenværende uttalelsene etter fangstblokk og avslutningsprogram.

Det kan være flere fangstoppgaver, avhengig av antall mulige unntak.

Fortsetter med denne Exception Handling-artikkelen i C ++,

casting dobbelt til int java

Feil i fangstblokk

Tenk på forrige program, hvis i stedet for x kasteordet kaster “ABC”, vil ikke fangstfunksjonen være i stand til å håndtere det. Det vil vise en feil,

Vi kan få vår vant feilmelding vises i slike tilfeller.

For å løse dette må vi legge til en standard fangstfunksjon i koden for å håndtere slike problemer.

#include ved bruk av navneområdet std int main () {int x = 1 prøv {cout<< 'Try Block: '<

Utgang:

Forklaring:

Denne koden er lik den forrige. Den eneste endringen er at unntaket som kastes er av typen røye. Dette resulterer i at fangstfunksjonen vår er ubrukelig. Så vi har tatt med en standard fangstfunksjon.

Hvis ingen av fangstutsagnene stemmer overens, blir standardfangsten utført.

Flere fangstblokker

Det kan være flere fangstblokker av en enkelt prøveblokk.

Her er et eksempel,

#include using namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Produksjon:

Forklaring:

I koden ovenfor bruker vi flere fangstuttalelser. Vi har en funksjonstest som genererer et unntak. I det første testtilfellet er verdien 10. Siden 10 er større enn null, blir 'a' karakteren kastet og den blir fanget av den andre fangstfunksjonen.

I det andre tilfellet er verdien mindre enn 0, slik at verdien -1 kastes og den fanges av heltall unntak

Unntakshåndtering i base og avledet klasse:

Hvis basen og avledede klasse unntak blir fanget, må fangst av avledet klasse utføres før basisklassen.

Her er noen unntak:

  • std :: unntak

  • logikk_feil

  • runtime_error

  • dårlig_alloc

  • dårlig_kast

  • dårlig_ unntak

Med dette kommer vi til slutten av denne bloggen om ‘Exception Handling In C ++’. Jeg håper du fant dette informativt og hjelpsomt, hold deg oppdatert for flere veiledninger om lignende emner. Du kan også sjekke ut vårt treningsprogram to få grundig kunnskap om jQuery sammen med de forskjellige applikasjonene du kan for live online trening med 24/7 support og levetidstilgang.

Har du et spørsmål til oss? Nevn dem i kommentarfeltet til denne bloggen, så kommer vi tilbake til deg.