C++ Try-Catch-Endelig

C Try Catch Endelig



C++ gir 'try-catch'-metoden for å håndtere unntakene. Når et unntak oppstår i C++-programmet, hjelper disse 'try-catch'-metodene til å flytte kontrollen fra en del av programmets kode til den andre. Et unntak er en feil som vises mens et program kjører. Når en ekstraordinær situasjon, som å prøve å dele på null, oppstår mens et program kjører, oppstår et C++-unntak, og vi håndterer denne situasjonen ved ganske enkelt å bruke 'try-catch'-metoden i kodene våre. Den inneholder tre nøkkelord: 'prøve', 'fange' og 'kaste'. Nøkkelordet 'kast' brukes til å kaste unntaket i andre kodedeler. C++-programmeringen letter oss ikke med nøkkelordet 'endelig', men vi kan bruke søkeordene 'prøve', 'fange' og 'kaste' i C++-koder.

Eksempel 1:

'iostream' er inkludert her, header-filen der flere funksjoner er deklarert. Vi bruker disse funksjonene som er deklarert i denne hodefilen i koden vår, så vi inkluderer denne hodefilen. Etter dette har vi 'std' som er plassert her ettersom funksjoner som 'cin' og 'cout' også er definert i den. Vi trenger ikke å skrive 'std' med alle disse funksjonene hvis vi legger til 'navneområdet std' i starten av koden vår. Etter dette blir 'main()'-funksjonen påkalt her, som også refereres til som driverkoden til C++-programmet.

Deretter bruker vi nøkkelordet 'prøv' her, der vi initialiserer 'mitt_nummer1' med verdien '35'. Det er 'int' datatypevariabelen her. Nå plasserer vi denne variabelen i 'hvis' og plasserer en betingelse som sier at 'mitt_nummer1' må være større enn eller lik '98'. Hvis den gitte betingelsen er oppfylt, går den videre innenfor 'if' og utfører setningen som er skrevet her. Vi bruker 'cout' og setter inn en melding som skal vises når tilstanden er oppfylt.







Etter dette bruker vi søkeordet 'kast' etter å ha plassert 'annet'. I dette «kast»-nøkkelordet sender vi «mitt_nummer1» som parameter. Vi legger til 'fangst'-delen under denne. Vi setter inn 'my_num2' som parameteren til 'catch()' og bruker deretter 'cout' igjen inne i denne 'catch'-delen. Denne delen kjøres bare når et unntak oppstår i 'prøve'-delen.



Kode 1:



#include
ved hjelp av navneområde std ;
int hoved- ( ) {
prøve {
int mitt_nummer1 = 35 ;
hvis ( mitt_nummer1 >= 98 ) {
cout << 'Tilgangen er gitt her.' ;
} ellers {
kaste ( mitt_nummer1 ) ;
}
}
å fange ( int mitt_nummer2 ) {
cout << 'Tilgangen er nektet her.' << endl ;
cout << 'Numret er:' << mitt_nummer2 ;
}
komme tilbake 0 ;
}

Produksjon:
Tallet vi skrev inn er '35', som er mindre enn '98'. Så unntaket oppstår der og 'catch()'-delen vises. Tilgangen til 'prøve'-delen nektes.





Eksempel 2:

Vi plasserer 'iostream'-headerfilen her og 'navneområdet std'. Etter dette lager vi en 'divisjon()'-funksjon der vi plasserer to parametere som er 'telleren' og 'nevneren' til datatypen 'int'. Vi setter datatypen til denne 'divisjon'-funksjonen til 'dobbel'.



Under dette legger vi til 'if()' der vi legger til betingelsen om at nevneren er lik null. Etter dette bruker vi nøkkelordet 'kast' og skriver en melding der. Denne meldingen gjengis når unntaket forekommer i denne koden i henhold til betingelsen. Under dette bruker vi nøkkelordet 'retur' der vi plasserer 'teller/nevner'. Så det returnerer resultatet av divisjonen. Nå kalles 'main()'-funksjonen.

Etter dette initialiseres 'num1' og 'num2' som 'int'-variablene og tilordner '89' og '0' til dem henholdsvis. Deretter initialiserer vi 'resultatet' til den 'doble' datatypen. Her bruker vi nøkkelordet 'prøv'. I denne delen legger vi til denne «resultat»-variabelen og tilordner «divisjon()»-funksjonen til denne variabelen. Vi sender to parametere til denne funksjonen: 'num1' og 'num2'. Under dette viser vi 'resultatet' som vi får etter å ha brukt 'divisjon()'-funksjonen. Etter dette bruker vi også 'fangsten' og plasserer 'const char* msg' for å vise meldingen som vi tidligere har lagt til.

Kode 2:

#include
ved hjelp av navneområde std ;
dobbelt inndeling ( int teller, int nevner ) {
hvis ( nevner == 0 ) {
kaste 'Nulldeling er ikke mulig her!' ;
}
komme tilbake ( teller / nevner ) ;
}
int hoved- ( ) {
int nummer1 = 89 ;
int nummer2 = 0 ;
dobbelt resultat = 0 ;
prøve {
resultat = inndeling ( nummer1, nummer2 ) ;
cout << resultat << endl ;
} å fange ( konst røye * melding ) {
cerr << melding << endl ;
}
komme tilbake 0 ;
}

Produksjon:
Tallet som vi tidligere har satt inn som nevner er '0'. Så unntaket forekommer i koden og den viser den gitte meldingen.

Eksempel 3:

Funksjonen 'multiplikasjon()' opprettes her der vi plasserer 'verdien' og 'multiplikatoren' som parametere for datatypen 'int'. Deretter bruker vi 'hvis' der vi legger til en multiplikatorbetingelse som er lik null. Deretter plasseres 'kast' der vi legger til et utsagn. Deretter har vi 'avkastningen' der vi plasserer 'verdi * multiplikator'-variablene som vi tidligere erklærte. Så det returnerer multiplikasjonsresultatet her.

Etter dette kaller vi 'main()' hvor vi erklærer 'int verdi1' og 'int verdi2' med verdiene på henholdsvis '34' og '0'. 'int m_res' er også erklært og deretter kalt 'multiplikasjons()'-funksjonen her. Etter å ha utført denne funksjonen, lagres resultatet nå i 'm_res'-variabelen og vises deretter. Deretter bruker vi 'fangst'-funksjonen og setter inn 'const char* msg' for å vise meldingen som vi tidligere la til i 'kast'-delen.

Kode 3:

#include
ved hjelp av navneområde std ;
dobbelt multiplikasjon ( int verdi, int multiplikator ) {
hvis ( multiplikator == 0 ) {
kaste 'Vi multipliserer ikke verdien med null!' ;
}
komme tilbake ( verdi * multiplikator ) ;
}
int hoved- ( ) {
int verdi1 = 3. 4 ;
int verdi2 = 0 ;
int m_res ;
prøve {
m_res = multiplikasjon ( verdi1, verdi2 ) ;
cout << m_res << endl ;
} å fange ( konst røye * melding ) {
cerr << melding << endl ;
}
komme tilbake 0 ;
}

Produksjon :
Siden verdien som vi tidligere skrev inn har '0' som multiplikator, har koden et unntak som gjør at varselet vises her.

Eksempel 4:

Her bygger vi «multiply()»-funksjonen og sender inn «number1» og «number2» som parametere for «int»-datatypen. Deretter bruker vi 'hvis'-operatoren for å legge til en betingelse til den som er en multiplikator som er mindre enn eller lik null. Etter det legges uttalelsen til der 'kast' skal være. Multiplikasjonsresultatet returneres deretter i 'retur'-delen der vi setter inn 'nummer1 * tall2'-variabelen som vi tidligere erklærte.

Deretter påkaller vi funksjonen 'main()' og tilordner verdiene '34' og '12' til henholdsvis 'int newNumber1' og 'int newNumber2'. Her kalles 'multiply()'-funksjonen etter erklæringen av 'int mResult'. Nå lagres resultatet av denne funksjonen i 'mResult'-variabelen og gjengis i det følgende. Vi bruker deretter 'fangst'-funksjonen og legger til 'const char* msg' for å vise meldingen som vi skrev i 'kast'-delen.

Kode 4:

#include
ved hjelp av navneområde std ;
dobbelt multiplisere ( int nummer 1, int Nummer 2 ) {
hvis ( Nummer 2 <= 0 ) {
kaste 'Vi multipliserer ikke verdien med null eller negativ verdi!' ;
}
komme tilbake ( nummer1 * Nummer 2 ) ;
}
int hoved- ( ) {
int nyttNum1 = 3. 4 ;
int nyttNum2 = 12 ;
int mResult ;
prøve {
      mResult = multiplisere ( nyttNum1, nyttNum2 ) ;
cout << 'Resultatet av multiplikasjon er' << mResult << endl ;
}
å fange ( konst røye * melding ) {
cerr << melding << endl ;
}
komme tilbake 0 ;
}

Produksjon:
Verdien vi legger til er '12' som vi legger til betingelsen på. Så 'multiply()'-funksjonen utføres siden betingelsen ikke er sann. Resultatet av multiplikasjonen vises. 'Prøv'-delen utføres her.

Konklusjon

«Try-catch»-konseptet og kodene i denne veiledningen studeres i detalj. Vi utforsket dette 'prøvefangst'-konseptet grundig og viste hvordan det fungerer i C++-programmering. Vi definerte at 'kast'-begrepet skaper et unntak når en feil blir funnet som lar oss skrive vår unike kode. Ved å bruke 'catch'-uttrykket kan vi spesifisere en kodeblokk som skal kjøres hvis et unntak vises i 'try'-delen.