C++ Try-Catch-Finally

C Try Catch Finally



C++ nodrošina “try-catch” metodi izņēmumu apstrādei. Ja programmā C++ notiek izņēmums, šīs “izmēģināšanas nozvejas” metodes palīdz pārslēgt vadību no vienas programmas koda daļas uz otru. Izņēmums ir kļūme, kas parādās programmas darbības laikā. Ja programmas izpildes laikā notiek ārkārtēja situācija, piemēram, mēģinājums dalīt ar nulli, tiek parādīts C++ izņēmums, un mēs šo situāciju risinām, savos kodos vienkārši izmantojot “try-catch” metodi. Tajā ir trīs atslēgvārdi: “mēģināt”, “noķert” un “mest”. Atslēgvārds “mest” tiek izmantots, lai izmestu izņēmumu citās koda daļās. C++ programmēšana neatvieglo mūs ar atslēgvārdu “beidzot”, taču C++ kodos varam izmantot atslēgvārdus “izmēģināt”, “ķert” un “mest”.

1. piemērs:

Šeit ir iekļauts “iostream”, galvenes fails, kurā ir deklarētas vairākas funkcijas. Mēs izmantojam šīs funkcijas, kas ir deklarētas šajā galvenes failā mūsu kodā, tāpēc mēs iekļaujam šo galvenes failu. Pēc tam mums ir “std”, kas tiek ievietots šeit, jo tajā ir definētas arī tādas funkcijas kā “cin” un “cout”. Mums nav jāievada “std” ar visām šīm funkcijām, ja koda sākumā pievienojam “namespace std”. Pēc tam šeit tiek izsaukta funkcija “main ()”, kas tiek saukta arī par C++ programmas draivera kodu.

Pēc tam mēs šeit izmantojam atslēgvārdu “izmēģināt”, kurā inicializējam “my_num1” ar vērtību “35”. Šeit tas ir “int” datu tipa mainīgais. Tagad mēs ievietojam šo mainīgo “if” iekšpusē un ievietojam nosacījumu, kas saka, ka “my_num1” ir jābūt lielākam par “98” vai vienādam ar to. Ja dotais nosacījums ir izpildīts, tas virzās uz priekšu “if” iekšpusē un izpilda šeit rakstīto paziņojumu. Mēs izmantojam “cout” un ievietojam ziņojumu, lai parādītu, kad nosacījums ir izpildīts.







Pēc tam mēs izmantojam atslēgvārdu “mest” pēc “cits” ievietošanas. Šajā atslēgvārdā “iemet” kā parametru mēs nododam “my_num1”. Zem šī mēs pievienojam daļu “noķert”. Mēs ievietojam “my_num2” kā “catch()” parametru un pēc tam atkal izmantojam “cout” šajā “catch” daļā. Šī daļa tiek izpildīta tikai tad, ja daļā “izmēģināt” notiek izņēmums.



1. kods:



#include
izmantojot nosaukumvieta std ;
starpt galvenais ( ) {
mēģināt {
starpt mans_numurs1 = 35 ;
ja ( mans_numurs1 >= 98 ) {
cout << 'Šeit tiek piešķirta piekļuve.' ;
} cits {
mest ( mans_numurs1 ) ;
}
}
noķert ( starpt mans_numurs2 ) {
cout << 'Piekļuve šeit ir liegta.' << endl ;
cout << 'Numurs ir:' << mans_numurs2 ;
}
atgriezties 0 ;
}

Izvade:
Ievadītais skaitlis ir “35”, kas ir mazāks par “98”. Tātad tur notiek izņēmums un tiek parādīta daļa “catch ()”. Piekļuve “izmēģināšanas” daļai ir liegta.





2. piemērs:

Šeit ievietojam “iostream” galvenes failu un “namespace std”. Pēc tam mēs izveidojam funkciju “division()”, kurā ievietojam divus parametrus, kas ir “int” datu tipa “skaitītājs” un “saucējs”. Šīs funkcijas “dalīšana” datu tipu iestatījām uz “double”.



Zem tā mēs pievienojam “if()”, kurā pievienojam nosacījumu, ka saucējs ir vienāds ar nulli. Pēc tam mēs izmantojam atslēgvārdu “mest” un ierakstām tur ziņojumu. Šis ziņojums tiek renderēts ikreiz, kad šajā kodā notiek izņēmums atbilstoši nosacījumam. Zem tā mēs izmantojam atslēgvārdu “atgriešanās”, kurā ievietojam “skaitītāju/saucēju”. Tātad, tas atgriež dalīšanas rezultātu. Tagad tiek izsaukta funkcija “main ()”.

Pēc tam “num1” un “num2” tiek inicializēti kā “int” mainīgie un piešķir tiem attiecīgi “89” un “0”. Pēc tam mēs inicializējam “dubultā” datu tipa “rezultātu”. Šeit mēs izmantojam atslēgvārdu “izmēģināt”. Šajā daļā mēs pievienojam šo mainīgo “rezultāts” un šim mainīgajam piešķiram funkciju “division()”. Šai funkcijai mēs nododam divus parametrus: “num1” un “num2”. Zem tā mēs parādām “rezultātu”, ko iegūstam pēc funkcijas “division()” izmantošanas. Pēc tam mēs arī izmantojam “catch” un ievietojam “const char* msg”, lai parādītu iepriekš pievienoto ziņojumu.

2. kods:

#include
izmantojot nosaukumvieta std ;
dubultā nodaļa ( starpt skaitītājs, starpt saucējs ) {
ja ( saucējs == 0 ) {
mest 'Šeit dalīt ar nulli nav iespējams!' ;
}
atgriezties ( skaitītājs / saucējs ) ;
}
starpt galvenais ( ) {
starpt num1 = 89 ;
starpt num2 = 0 ;
dubultā rezultāts = 0 ;
mēģināt {
rezultāts = nodaļa ( num1, num2 ) ;
cout << rezultāts << endl ;
} noķert ( konst char * ziņa ) {
cerr << ziņa << endl ;
}
atgriezties 0 ;
}

Izvade:
Skaitlis, ko mēs iepriekš ievietojām kā saucēju, ir “0”. Tātad kodā notiek izņēmums, un tas parāda doto ziņojumu.

3. piemērs:

Šeit tiek izveidota funkcija “reizināšana ()”, kurā kā “int” datu tipa parametrus ievietojam “vērtību” un “reizinātāju”. Pēc tam mēs izmantojam “ja”, kurā pievienojam reizinātāja nosacījumu, kas ir vienāds ar nulli. Pēc tam “mest” tiek ievietots vietā, kur pievienojam paziņojumu. Pēc tam mums ir “atgriešanās”, kurā ievietojam iepriekš deklarētos mainīgos “vērtība * reizinātājs”. Tātad, tas atgriež reizināšanas rezultātu šeit.

Pēc tam mēs izsaucam “main()”, kur mēs deklarējam “int value1” un “int value2” attiecīgi ar vērtībām “34” un “0”. Arī “int m_res” tiek deklarēta un pēc tam šeit tiek saukta par funkciju “reizināšana ()”. Pēc šīs funkcijas izpildes rezultāts tagad tiek saglabāts mainīgajā “m_res” un pēc tam parādīts. Pēc tam mēs izmantojam funkciju “catch” un ievietojam “const char* msg”, lai parādītu ziņojumu, ko iepriekš pievienojām daļā “mest”.

3. kods:

#include
izmantojot nosaukumvieta std ;
dubultā reizināšana ( starpt vērtība, starpt reizinātājs ) {
ja ( reizinātājs == 0 ) {
mest 'Mēs nereizinām vērtību ar nulli!' ;
}
atgriezties ( vērtību * reizinātājs ) ;
}
starpt galvenais ( ) {
starpt vērtība1 = 3. 4 ;
starpt vērtība2 = 0 ;
starpt m_res ;
mēģināt {
m_res = reizināšana ( vērtība1, vērtība2 ) ;
cout << m_res << endl ;
} noķert ( konst char * ziņa ) {
cerr << ziņa << endl ;
}
atgriezties 0 ;
}

Izvade :
Tā kā iepriekš ievadītās vērtības reizinātājs ir “0”, kodam ir izņēmums, kas liek šeit parādīt paziņojumu.

4. piemērs:

Šeit mēs izveidojam funkciju “reizināt ()” un nododam “number1” un “number2” kā “int” datu tipa parametrus. Tālāk mēs izmantojam operatoru “if”, lai tam pievienotu nosacījumu, kas ir reizinātājs, kas ir mazāks vai vienāds ar nulli. Pēc tam tiek pievienots paziņojums, kur vajadzētu būt “mest”. Reizināšanas rezultāts tiek atgriezts sadaļā “atgriešanās”, kur mēs ievietojam mainīgo “number1 * number2”, ko mēs iepriekš deklarējām.

Pēc tam mēs izsaucam funkciju “main()” un piešķiram “34” un “12” vērtības attiecīgi “int newNumber1” un “int newNumber2”. Šeit funkcija “reizināt ()” tiek izsaukta pēc “int mResult” deklarācijas. Tagad šīs funkcijas rezultāts tiek saglabāts mainīgajā “mResult” un tiek atveidots tālāk. Pēc tam mēs izmantojam funkciju “catch” un pievienojam “const char* msg”, lai parādītu ziņojumu, ko rakstījām sadaļā “mest”.

4. kods:

#include
izmantojot nosaukumvieta std ;
dubultā vairoties ( starpt numurs 1, starpt numurs2 ) {
ja ( numurs2 <= 0 ) {
mest 'Mēs nereizinām vērtību ar nulli vai negatīvu vērtību!' ;
}
atgriezties ( numurs1 * numurs2 ) ;
}
starpt galvenais ( ) {
starpt jaunsNum1 = 3. 4 ;
starpt jaunsNum2 = 12 ;
starpt mRezultāts ;
mēģināt {
mRezultāts = vairoties ( newNum1, newNum2 ) ;
cout << 'Reizināšanas rezultāts ir' << mRezultāts << endl ;
}
noķert ( konst char * ziņa ) {
cerr << ziņa << endl ;
}
atgriezties 0 ;
}

Izvade:
Pievienotā vērtība ir “12”, kurai pievienojam nosacījumu. Tātad funkcija “reizināt ()” tiek veikta, jo nosacījums nav patiess. Tiek parādīts reizināšanas rezultāts. Šeit tiek izpildīta daļa “izmēģināt”.

Secinājums

Šajā rokasgrāmatā ir detalizēti izpētīts jēdziens “izmēģināt noķert” un kodi. Mēs rūpīgi izpētījām šo “try-catch” koncepciju un parādījām, kā tā darbojas C++ programmēšanā. Mēs definējām, ka termins “mest” rada izņēmumu, ja tiek atrasta kļūda, kas ļauj mums uzrakstīt mūsu unikālo kodu. Izmantojot izteiksmi “catch”, mēs varam norādīt koda bloku, kas jāpalaiž, ja daļā “izmēģināt” parādās izņēmums.