C++ Try-Catch-Finally

C Try Catch Finally



C++ suteikia „try-catch“ metodą, skirtą išimtims tvarkyti. Kai C++ programoje įvyksta išimtis, šie „bandymo gaudymo“ metodai padeda perkelti valdymą iš vienos programos kodo dalies į kitą. Išimtis yra gedimas, kuris atsiranda programai veikiant. Kai programai vykdant įvyksta nepaprasta situacija, pavyzdžiui, bandoma padalyti iš nulio, iškeliama C++ išimtis ir mes sprendžiame šią situaciją tiesiog naudodami „try-catch“ metodą savo koduose. Jame yra trys raktiniai žodžiai: „bandyti“, „pagauti“ ir „mesti“. Raktinis žodis „išmesti“ naudojamas išimties išmetimui kitose kodo dalyse. C++ programavimas nepadeda mums naudoti raktinio žodžio „pagaliau“, tačiau C++ koduose galime naudoti raktinius žodžius „bandyti“, „pagauti“ ir „mesti“.

1 pavyzdys:

Čia įtrauktas „iostream“, antraštės failas, kuriame deklaruojamos kelios funkcijos. Naudojame šias funkcijas, kurios yra nurodytos šiame antraštės faile mūsų kode, todėl įtraukiame šį antraštės failą. Po to turime „std“, kuris yra čia, nes jame taip pat yra apibrėžtos tokios funkcijos kaip „cin“ ir „cout“. Mums nereikia įvesti „std“ naudojant visas šias funkcijas, jei kodo pradžioje pridėsime „vardų sritį std“. Po to čia iškviečiama funkcija „main()“, kuri taip pat vadinama C++ programos tvarkyklės kodu.

Tada mes naudojame raktinį žodį „bandyti“, kuriame inicijuojame „my_num1“ su „35“ reikšme. Čia yra „int“ duomenų tipo kintamasis. Dabar įdedame šį kintamąjį į „if“ ir pateikiame sąlygą, kuri sako, kad „mano_numas1“ turi būti didesnis arba lygus „98“. Jei duota sąlyga tenkinama, ji juda į priekį „if“ viduje ir vykdo čia parašytą teiginį. Naudojame „cout“ ir įterpiame pranešimą, kad būtų rodoma, kai sąlyga įvykdoma.







Po to mes naudojame raktinį žodį „išmesti“, įdėję „kita“. Šiame „mesti“ raktiniame žodyje kaip parametrą perduodame „my_num1“. Žemiau pridedame dalį „pagauti“. Įterpiame „my_num2“ kaip „catch()“ parametrą ir vėl naudojame „cout“ šioje „catch“ dalyje. Ši dalis vykdoma tik tada, kai dalyje „bandyti“ atsiranda išimtis.



1 kodas:



#include
naudojant vardų erdvė std ;
tarpt pagrindinis ( ) {
bandyti {
tarpt mano_numas1 = 35 ;
jeigu ( mano_numas1 >= 98 ) {
cout << 'Prieiga suteikta čia.' ;
} Kitas {
mesti ( mano_numas1 ) ;
}
}
sugauti ( tarpt mano_numas2 ) {
cout << „Prieiga čia uždrausta“. << endl ;
cout << 'Skaičius yra:' << mano_numas2 ;
}
grąžinti 0 ;
}

Išvestis:
Įvestas skaičius yra „35“, o tai yra mažesnis nei „98“. Taigi ten įvyksta išimtis ir rodoma dalis „catch()“. Prieiga prie „bandymo“ dalies uždrausta.





2 pavyzdys:

Čia įdedame „iostream“ antraštės failą ir „namespace std“. Po to sukuriame funkciją „division()“, kurioje pateikiame du parametrus, kurie yra „int“ duomenų tipo „skaitiklis“ ir „vardiklis“. Šios funkcijos „padalijimas“ duomenų tipą nustatome į „dvigubas“.



Po juo pridedame „if()“, kuriame pridedame sąlygą, kad vardiklis yra lygus nuliui. Po to naudojame raktinį žodį „mesti“ ir ten įrašome pranešimą. Šis pranešimas pateikiamas kaskart, kai šiame kode atsiranda išimtis pagal sąlygą. Žemiau mes naudojame raktinį žodį „grįžimas“, kuriame įdedame „skaitiklį / vardiklį“. Taigi, jis grąžina padalijimo rezultatą. Dabar iškviečiama funkcija „main ()“.

Po to „num1“ ir „num2“ inicijuojami kaip „int“ kintamieji ir jiems atitinkamai priskiriami „89“ ir „0“. Tada inicijuojame „dvigubo“ duomenų tipo „rezultatą“. Čia mes naudojame raktinį žodį „bandyti“. Šioje dalyje pridedame šį „rezultato“ kintamąjį ir šiam kintamajam priskiriame funkciją „division()“. Šiai funkcijai perduodame du parametrus: „num1“ ir „num2“. Po juo rodome „rezultatą“, kurį gauname pritaikę „division()“ funkciją. Po to mes taip pat naudojame „pagauti“ ir įdedame „const char* msg“, kad būtų rodomas pranešimas, kurį anksčiau įtraukėme.

2 kodas:

#include
naudojant vardų erdvė std ;
dvigubai padalinys ( tarpt skaitiklis, tarpt vardiklis ) {
jeigu ( vardiklis == 0 ) {
mesti „Padalyti iš nulio čia negalima! ;
}
grąžinti ( skaitiklis / vardiklis ) ;
}
tarpt pagrindinis ( ) {
tarpt skaičius1 = 89 ;
tarpt skaičius2 = 0 ;
dvigubai rezultatas = 0 ;
bandyti {
rezultatas = padalinys ( skaičius1, skaičius2 ) ;
cout << rezultatas << endl ;
} sugauti ( konst char * žinutė ) {
cerr << žinutė << endl ;
}
grąžinti 0 ;
}

Išvestis:
Skaičius, kurį anksčiau įterpėme kaip vardiklį, yra „0“. Taigi, išimtis atsiranda kode ir parodo duotą pranešimą.

3 pavyzdys:

Čia sukuriama funkcija 'daugyba ()', kurioje kaip 'int' duomenų tipo parametrus pateikiame 'vertę' ir 'daugiklį'. Tada naudojame „jei“, kai pridedame daugiklio sąlygą, lygią nuliui. Tada „mesti“ dedamas ten, kur pridedame teiginį. Tada turime „grąžą“, kur dedame „vertės * daugiklio“ kintamuosius, kuriuos anksčiau deklaravome. Taigi čia pateikiamas daugybos rezultatas.

Po to mes vadiname „main()“, kur deklaruojame „int value1“ ir „int value2“ atitinkamai „34“ ir „0“ reikšmėmis. Taip pat deklaruojama „int m_res“ ir čia vadinama „daugybos ()“ funkcija. Atlikus šią funkciją, rezultatas išsaugomas kintamajame „m_res“ ir rodomas. Vėliau mes naudojame funkciją „pagauti“ ir įterpti „const char* msg“, kad būtų parodytas pranešimas, kurį anksčiau įtraukėme į dalį „mesti“.

3 kodas:

#include
naudojant vardų erdvė std ;
dvigubai daugyba ( tarpt vertė, tarpt daugiklis ) {
jeigu ( daugiklis == 0 ) {
mesti 'Mes nedauginame vertės iš nulio!' ;
}
grąžinti ( vertė * daugiklis ) ;
}
tarpt pagrindinis ( ) {
tarpt vertė1 = 3. 4 ;
tarpt vertė2 = 0 ;
tarpt m_res ;
bandyti {
m_res = daugyba ( vertė1, vertė2 ) ;
cout << m_res << endl ;
} sugauti ( konst char * žinutė ) {
cerr << žinutė << endl ;
}
grąžinti 0 ;
}

Išvestis :
Kadangi anksčiau įvestos reikšmės daugiklis yra „0“, kodas turi išimtį, dėl kurios čia rodomas pranešimas.

4 pavyzdys:

Čia sukuriame funkciją „dauginti ()“ ir perduodame „skaičius1“ ir „skaičius2“ kaip „int“ duomenų tipo parametrus. Tada naudojame operatorių „jei“, kad pridėtume sąlygą, kuri yra daugiklis, mažesnis arba lygus nuliui. Po to teiginys pridedamas ten, kur turėtų būti „mesti“. Tada daugybos rezultatas grąžinamas skiltyje „grįžimas“, kur įterpiame kintamąjį „skaičius1 * skaičius2“, kurį anksčiau deklaravome.

Vėliau iškviečiame funkciją „main()“ ir atitinkamai priskiriame „34“ ir „12“ reikšmes „int newNumber1“ ir „int newNumber2“. Čia funkcija „dauginti()“ iškviečiama po „int mResult“ deklaracijos. Dabar šios funkcijos rezultatas saugomas kintamajame „mResult“ ir pateikiamas toliau. Tada naudojame funkciją „pagauti“ ir pridedame „const char* msg“, kad būtų rodomas pranešimas, kurį parašėme skiltyje „mesti“.

4 kodas:

#include
naudojant vardų erdvė std ;
dvigubai padauginti ( tarpt numeris 1 , tarpt numeris2 ) {
jeigu ( numeris2 <= 0 ) {
mesti 'Mes nedauginame vertės iš nulio ar neigiamos reikšmės!' ;
}
grąžinti ( numeris 1 * numeris2 ) ;
}
tarpt pagrindinis ( ) {
tarpt naujasNum1 = 3. 4 ;
tarpt naujasNum2 = 12 ;
tarpt mRezultatas ;
bandyti {
mRezultatas = padauginti ( newNum1, newNum2 ) ;
cout << 'Daugybos rezultatas yra' << mRezultatas << endl ;
}
sugauti ( konst char * žinutė ) {
cerr << žinutė << endl ;
}
grąžinti 0 ;
}

Išvestis:
Vertė, kurią pridedame, yra „12“, prie kurios pridedame sąlygą. Taigi, funkcija „dauginti ()“ atliekama, nes sąlyga nėra teisinga. Rodomas daugybos rezultatas. Čia vykdoma dalis „bandyti“.

Išvada

Šiame vadove pateikta sąvoka „bandyk pagauti“ ir kodai yra išsamiai išnagrinėti. Mes nuodugniai ištyrėme šią „pabandykite pagauti“ koncepciją ir parodėme, kaip ji veikia programuojant C++. Apibrėžėme, kad terminas „mesti“ sukuria išimtį, kai randama klaida, leidžianti parašyti unikalų kodą. Naudodami išraišką „pagauti“, galime nurodyti kodo bloką, kuris turi būti paleistas, jei dalyje „bandyti“ atsiranda išimtis.