C++ Proovi-Catch-Finally

C Proovi Catch Finally



C++ pakub erandite käsitlemiseks proovi püüdmise meetodit. Kui programmis C++ ilmneb erand, aitavad need 'proovi püüdmise' meetodid juhtelemente nihutada programmi koodi ühest osast teise. Erandiks on tõrge, mis ilmub programmi töötamise ajal. Kui programmi täitmise ajal tekib erakorraline olukord, nagu näiteks nulliga jagamise katse, kuvatakse C++ erand ja me lahendame selle olukorra lihtsalt kasutades oma koodides meetodit „try-catch”. See sisaldab kolme märksõna: 'proovi', 'püüda' ja 'viska'. Märksõna 'viska' kasutatakse erandi loomiseks teistes koodiosades. C++ programmeerimine ei hõlbusta meid märksõnaga 'lõpuks', kuid C++ koodides saame kasutada märksõnu 'proovi', 'püüda' ja 'viska'.

Näide 1:

Siia on lisatud 'iostream', päisefail, milles on deklareeritud mitu funktsiooni. Kasutame neid funktsioone, mis on meie koodis selles päisefailis deklareeritud, seega lisame selle päisefaili. Pärast seda on meil 'std', mis asetatakse siia, kuna selles on määratletud ka sellised funktsioonid nagu 'cin' ja 'cout'. Me ei pea kõigi nende funktsioonidega sisestama sõna 'std', kui lisame oma koodi algusesse 'nimeruumi std'. Pärast seda käivitatakse siin funktsioon 'main()', mida nimetatakse ka C++ programmi draiverikoodiks.

Seejärel kasutame siin märksõna 'proovi', mille puhul lähtestame 'my_num1' väärtusega '35'. See on siin andmetüübi muutuja 'int'. Nüüd asetame selle muutuja 'if' sisse ja asetame tingimuse, mis ütleb, et 'my_num1' peab olema suurem kui '98' või sellega võrdne. Kui antud tingimus on täidetud, liigub see “if” sees edasi ja täidab siia kirjutatud lause. Kasutame sõna 'cout' ja sisestame teate, mis kuvatakse, kui tingimus on täidetud.







Pärast seda kasutame pärast sõna 'muu' asetamist märksõna 'viska'. Selles 'viska' märksõnas edastame parameetrina 'my_num1'. Lisame selle alla osa 'saak'. Sisestame 'catch()' parameetriks 'my_num2' ja seejärel kasutame selle 'catch' osa sees uuesti 'cout'. See osa käivitatakse ainult siis, kui 'proovi' osas esineb erand.



Kood 1:



#include
kasutades nimeruum std ;
int peamine ( ) {
proovige {
int minu_number1 = 35 ;
kui ( minu_number1 >= 98 ) {
cout << 'Siin antakse juurdepääs.' ;
} muidu {
viskama ( minu_number1 ) ;
}
}
püüda ( int minu_number2 ) {
cout << 'Siin on juurdepääs keelatud.' << endl ;
cout << 'Arv on:' << minu_number2 ;
}
tagasi 0 ;
}

Väljund:
Sisestatud number on '35', mis on väiksem kui '98'. Seega toimub seal erand ja kuvatakse osa 'catch()'. Juurdepääs prooviosale on keelatud.





Näide 2:

Siia asetame päisefaili 'iostream' ja nimeruumi std. Pärast seda loome funktsiooni 'division()', milles asetame kaks parameetrit, mis on 'int' andmetüübi 'lugeja' ja 'nimetaja'. Seadsime selle funktsiooni 'jagamine' andmetüübiks 'double'.



Selle alla lisame 'if()', milles lisame tingimuse, et nimetaja on võrdne nulliga. Pärast seda kasutame märksõna 'viska' ja tippime sinna sõnumi. See teade renderdatakse alati, kui selles koodis toimub erand vastavalt tingimusele. Selle all kasutame märksõna 'tagastamine', millesse asetame 'lugeja/nimetaja'. Seega tagastab see jagamise tulemuse. Nüüd kutsutakse funktsioon 'main()'.

Pärast seda initsialiseeritakse 'num1' ja 'num2' muutujatena 'int' ja omistatakse neile vastavalt '89' ja '0'. Seejärel initsialiseerime 'topelt' andmetüübi 'tulemuse'. Siin kasutame märksõna 'proovige'. Selles osas lisame selle muutuja 'tulemus' ja määrame sellele muutujale funktsiooni 'division()'. Sellele funktsioonile edastame kaks parameetrit: “num1” ja “num2”. Selle all kuvame 'tulemuse', mille saame pärast funktsiooni 'division()' rakendamist. Pärast seda kasutame ka 'catch' ja asetame 'const char* msg', et kuvada varem lisatud teade.

Kood 2:

#include
kasutades nimeruum std ;
kahekordne jaotus ( int lugeja, int nimetaja ) {
kui ( nimetaja == 0 ) {
viskama 'Nulliga jagamine pole siin võimalik!' ;
}
tagasi ( lugeja / nimetaja ) ;
}
int peamine ( ) {
int number1 = 89 ;
int number2 = 0 ;
kahekordne tulemus = 0 ;
proovige {
tulemus = jaotus ( number1, number2 ) ;
cout << tulemus << endl ;
} püüda ( konst char * sõnum ) {
cerr << sõnum << endl ;
}
tagasi 0 ;
}

Väljund:
Arv, mille me varem nimetajaks sisestasime, on '0'. Niisiis, koodis ilmneb erand ja see kuvab antud sõnumi.

Näide 3:

Siin luuakse funktsioon 'korrutamine ()', milles asetame andmetüübi 'int' parameetriteks 'väärtus' ja 'kordaja'. Seejärel kasutame 'kui', mille korral lisame kordaja tingimuse, mis on võrdne nulliga. Seejärel asetatakse 'viska' kohta, kus lisame avalduse. Seejärel on meil 'tagastus', kuhu asetame varem deklareeritud muutujad 'väärtus * kordaja'. Niisiis, see tagastab siin korrutamistulemuse.

Pärast seda kutsume välja 'main()', kus deklareerime 'int value1' ja 'int value2' väärtustega vastavalt '34' ja '0'. Samuti deklareeritakse 'int m_res' ja seda nimetatakse siin funktsiooniks 'korrutamine ()'. Pärast selle funktsiooni täitmist salvestatakse tulemus nüüd muutujasse 'm_res' ja seejärel kuvatakse. Seejärel kasutame funktsiooni 'catch' ja sisestame 'const char* msg', et kuvada sõnum, mille lisasime varem 'viska' ossa.

Kood 3:

#include
kasutades nimeruum std ;
kahekordne korrutamine ( int väärtus, int kordaja ) {
kui ( kordaja == 0 ) {
viskama 'Me ei korruta väärtust nulliga!' ;
}
tagasi ( väärtus * kordaja ) ;
}
int peamine ( ) {
int väärtus1 = 3. 4 ;
int väärtus2 = 0 ;
int m_res ;
proovige {
m_res = korrutamine ( väärtus1, väärtus2 ) ;
cout << m_res << endl ;
} püüda ( konst char * sõnum ) {
cerr << sõnum << endl ;
}
tagasi 0 ;
}

Väljund :
Kuna meie varem sisestatud väärtuse kordajaks on '0', on koodil erand, mille tõttu kuvatakse siin teade.

Näide 4:

Siin loome funktsiooni 'korruta ()' ja sisestame andmetüübi 'int' parameetritena 'number1' ja 'number2'. Järgmisena kasutame operaatorit „if”, et lisada sellele tingimus, mis on kordaja, mis on nullist väiksem või sellega võrdne. Pärast seda lisatakse väide kohta, kus peaks olema 'viska'. Korrutamistulemus tagastatakse seejärel jaotises 'tagastamine', kuhu sisestame eelnevalt deklareeritud muutuja 'number1 * number2'.

Seejärel käivitame funktsiooni 'main()' ja määrame väärtused '34' ja '12' vastavalt 'int newNumber1' ja 'int newNumber2' jaoks. Siin kutsutakse funktsioon 'korruta()' pärast 'int mResult' deklaratsiooni. Nüüd salvestatakse selle funktsiooni tulemus muutujas 'mResult' ja renderdatakse järgmises. Seejärel kasutame funktsiooni 'catch' ja lisame 'const char* msg', et kuvada sõnum, mille kirjutasime jaotises 'viska'.

Kood 4:

#include
kasutades nimeruum std ;
kahekordne korrutada ( int number1, int number2 ) {
kui ( number2 <= 0 ) {
viskama 'Me ei korruta väärtust nulli ega negatiivse väärtusega!' ;
}
tagasi ( number1 * number2 ) ;
}
int peamine ( ) {
int newNum1 = 3. 4 ;
int uusNum2 = 12 ;
int mTulemus ;
proovige {
mTulemus = korrutada ( uusNum1, uusNum2 ) ;
cout << 'Korrutamise tulemus on' << mTulemus << endl ;
}
püüda ( konst char * sõnum ) {
cerr << sõnum << endl ;
}
tagasi 0 ;
}

Väljund:
Lisatav väärtus on „12”, millele tingimuse lisame. Seega täidetakse funktsioon 'korruta ()', kuna tingimus ei vasta tõele. Kuvatakse korrutamise tulemus. 'Proovi' osa täidetakse siin.

Järeldus

Selle juhendi kontseptsiooni „proovi püüda” ja koode uuritakse üksikasjalikult. Uurisime seda 'proovi püüdmise' kontseptsiooni põhjalikult ja näitasime, kuidas see C++ programmeerimises töötab. Määratlesime, et mõiste 'viska' loob vea leidmisel erandi, mis võimaldab meil kirjutada oma kordumatu koodi. Kasutades avaldist 'catch', saame määrata koodiploki, mida käivitada, kui 'proovi' osas ilmub erand.