C++ Poskus-Ujemi-Končno

C Poskus Ujemi Koncno



C++ nudi metodo »poskusi-ulovi« za obravnavanje izjem. Ko pride do izjeme v programu C++, te metode »poskusi-ulovi« pomagajo pri prenosu nadzora z enega dela kode programa na drugega. Izjema je napaka, ki se pojavi med izvajanjem programa. Ko med izvajanjem programa pride do izredne situacije, na primer poskusa deljenja z ničlo, se sproži izjema C++ in to situacijo rešimo tako, da preprosto uporabimo metodo »poskusi-ulovi« v naših kodah. Vsebuje tri ključne besede: »poskusi«, »ulovi« in »vrzi«. Ključna beseda »throw« se uporablja za vrženje izjeme v drugih delih kode. Programiranje C++ nam ne olajša ključne besede 'končno', lahko pa uporabimo ključne besede 'poskusi', 'ulovi' in 'vrzi' v kodah C++.

Primer 1:

Tu je vključen »iostream«, datoteka glave, v kateri je deklariranih več funkcij. Te funkcije, ki so deklarirane v tej naslovni datoteki, uporabljamo v naši kodi, zato vključimo to glavo. Po tem imamo »std«, ki je postavljen tukaj, saj so v njem definirane tudi funkcije, kot sta »cin« in »cout«. Z vsemi temi funkcijami nam ni treba vnesti »std«, če na začetku kode dodamo »namespace std«. Po tem se tukaj prikliče funkcija »main()«, ki se imenuje tudi koda gonilnika programa C++.

Nato tukaj uporabimo ključno besedo »try«, v kateri inicializiramo »my_num1« z vrednostjo »35«. Tukaj je spremenljivka podatkovnega tipa »int«. Zdaj to spremenljivko postavimo znotraj »if« in postavimo pogoj, ki pravi, da mora biti »my_num1« večje ali enako »98«. Če je dani pogoj izpolnjen, se premakne naprej znotraj 'if' in izvede stavek, ki je tukaj zapisan. Uporabimo 'cout' in vstavimo sporočilo, ki se prikaže, ko je pogoj izpolnjen.







Nato uporabimo ključno besedo »throw« po vstavitvi »else«. V tej ključni besedi »throw« posredujemo »my_num1« kot parameter. Pod tem dodamo del »catch«. Vstavimo »my_num2« kot parameter »catch()« in nato ponovno uporabimo »cout« znotraj tega dela »catch«. Ta del se izvede le, ko pride do izjeme v delu »poskusi«.



Koda 1:



#include
uporabo imenski prostor std ;
int glavni ( ) {
poskusi {
int moja_številka1 = 35 ;
če ( moja_številka1 >= 98 ) {
cout << 'Dostop je tukaj odobren.' ;
} drugače {
metati ( moja_številka1 ) ;
}
}
ulov ( int moja_številka2 ) {
cout << 'Dostop je tukaj zavrnjen.' << konec ;
cout << 'Številka je:' << moja_številka2 ;
}
vrnitev 0 ;
}

Izhod:
Številka, ki smo jo vnesli, je '35', kar je manj kot '98'. Torej se tam pojavi izjema in prikaže se del »catch()«. Dostop do dela »poskusi« je zavrnjen.





Primer 2:

Sem postavimo datoteko glave »iostream« in »namespace std«. Po tem ustvarimo funkcijo »division()«, v katero postavimo dva parametra, ki sta »števec« in »denominator« podatkovnega tipa »int«. Podatkovni tip te funkcije »deljenja« nastavimo na »double«.



Pod tem dodamo »if()«, v katerem dodamo pogoj, da je imenovalec enak nič. Nato uporabimo ključno besedo »throw« in tam vnesemo sporočilo. To sporočilo je upodobljeno vsakič, ko se pojavi izjema v tej kodi v skladu s pogojem. Pod tem uporabimo ključno besedo 'vrni', v katero postavimo 'števec/imenovalec'. Torej vrne rezultat deljenja. Zdaj se pokliče funkcija 'main()'.

Po tem se »num1« in »num2« inicializirata kot spremenljivki »int« in jima dodelita »89« oziroma »0«. Nato inicializiramo 'rezultat' podatkovnega tipa 'double'. Tukaj uporabljamo ključno besedo »poskusi«. V tem delu dodamo to spremenljivko »result« in tej spremenljivki dodelimo funkcijo »division()«. Tej funkciji posredujemo dva parametra: 'num1' in 'num2'. Pod tem prikažemo 'rezultat', ki ga dobimo po uporabi funkcije 'division()'. Po tem uporabimo tudi »catch« in postavimo »const char* msg« za prikaz sporočila, ki smo ga predhodno dodali.

Koda 2:

#include
uporabo imenski prostor std ;
dvojno delitev ( int števec, int imenovalec ) {
če ( imenovalec == 0 ) {
metati 'Deljenje z ničlo tukaj ni mogoče!' ;
}
vrnitev ( števnik / imenovalec ) ;
}
int glavni ( ) {
int št.1 = 89 ;
int št.2 = 0 ;
dvojno rezultat = 0 ;
poskusi {
rezultat = delitev ( št.1, št.2 ) ;
cout << rezultat << konec ;
} ulov ( konst char * sporočilo ) {
cerr << sporočilo << konec ;
}
vrnitev 0 ;
}

Izhod:
Število, ki smo ga prej vstavili kot imenovalec, je »0«. Torej se v kodi pojavi izjema in prikaže dano sporočilo.

Primer 3:

Tukaj je ustvarjena funkcija »multiplication()«, v katero postavimo »value« in »multiplier« kot parametra podatkovnega tipa »int«. Nato uporabimo »če«, v katerem dodamo pogoj množitelja, ki je enak nič. Nato se »vrzi« postavi na mesto, kjer dodamo izjavo. Nato imamo »vrnitev«, kamor postavimo spremenljivke »vrednost * množitelj«, ki smo jih predhodno deklarirali. Torej, tukaj vrne rezultat množenja.

Po tem pokličemo »main()«, kjer deklariramo »int value1« in »int value2« z vrednostmi »34« oziroma »0«. »int m_res« je prav tako deklarirana in nato tukaj imenovana funkcija »multiplication()«. Po izvedbi te funkcije se rezultat zdaj shrani v spremenljivko »m_res« in nato prikaže. Nato uporabimo funkcijo »catch« in vstavimo »const char* msg«, da prikažemo sporočilo, ki smo ga predhodno dodali v delu »throw«.

Koda 3:

#include
uporabo imenski prostor std ;
dvojno množenje ( int vrednost, int množitelj ) {
če ( množitelj == 0 ) {
metati 'Vrednosti ne množimo z nič!' ;
}
vrnitev ( vrednost * množitelj ) ;
}
int glavni ( ) {
int vrednost1 = 3. 4 ;
int vrednost2 = 0 ;
int m_res ;
poskusi {
m_res = množenje ( vrednost1, vrednost2 ) ;
cout << m_res << konec ;
} ulov ( konst char * sporočilo ) {
cerr << sporočilo << konec ;
}
vrnitev 0 ;
}

Izhod :
Ker ima vrednost, ki smo jo predhodno vnesli, množitelj »0«, ima koda izjemo, ki povzroči, da se tukaj prikaže obvestilo.

Primer 4:

Tukaj zgradimo funkcijo »multiply()« in posredujemo »number1« in »number2« kot parametra podatkovnega tipa »int«. Nato uporabimo operator »če«, da mu dodamo pogoj, ki je množitelj, ki je manjši ali enak nič. Po tem se stavek doda tam, kjer naj bi bil »throw«. Rezultat množenja se nato vrne v razdelku »return«, kjer vstavimo spremenljivko »number1 * number2«, ki smo jo predhodno deklarirali.

Nato pokličemo funkcijo 'main()' in vrednosti '34' in '12' dodelimo 'int newNumber1' oziroma 'int newNumber2'. Tu se funkcija »multiply()« pokliče po deklaraciji »int mResult«. Zdaj je izid te funkcije shranjen v spremenljivki »mResult« in je upodobljen v naslednjem. Nato uporabimo funkcijo »catch« in dodamo »const char* msg«, da prikažemo sporočilo, ki smo ga napisali v razdelku »throw«.

Koda 4:

#include
uporabo imenski prostor std ;
dvojno pomnožiti ( int številka 1 , int številka2 ) {
če ( številka2 <= 0 ) {
metati 'Vrednosti ne množimo z ničelno ali negativno vrednostjo!' ;
}
vrnitev ( številka 1 * številka2 ) ;
}
int glavni ( ) {
int novoŠtevilo1 = 3. 4 ;
int novoŠtevilo2 = 12 ;
int mRezultat ;
poskusi {
mRezultat = pomnožiti ( novaŠtev1, novaŠtev2 ) ;
cout << 'Rezultat množenja je' << mRezultat << konec ;
}
ulov ( konst char * sporočilo ) {
cerr << sporočilo << konec ;
}
vrnitev 0 ;
}

Izhod:
Vrednost, ki jo dodamo, je »12«, na katero dodamo pogoj. Torej se izvede funkcija »multiply()«, ker pogoj ni resničen. Prikaže se rezultat množenja. Del »poskusi« se izvede tukaj.

Zaključek

Koncept »poskusi-ulovi« in kode v tem priročniku so podrobno preučene. Temeljito smo raziskali ta koncept »poskusi-ulovi« in pokazali, kako deluje v programiranju C++. Določili smo, da izraz »vrzi« ustvari izjemo, ko je najdena napaka, kar nam omogoča pisanje naše edinstvene kode. Z izrazom »catch« lahko določimo blok kode, ki naj se zažene, če se pojavi izjema v delu »try«.