Kaip lengvai tvarkyti išimtis naudojant C++

Kaip Lengvai Tvarkyti Isimtis Naudojant C



Netikėti įvykiai, įvykę programai veikiant, vadinami išimtimis arba klaidomis. Išimtys atsiranda vykdymo metu ir negali būti užfiksuotos kompiliavimo metu, todėl gali sukelti rimtų problemų programoje. Geras C++ programos išimčių tvarkymas yra pagrindinis programuotojo tikslas pasiekti norimų rezultatų.

Kaip lengvai tvarkyti išimtis naudojant C++

Išimčių tvarkymas C++ reiškia veikimo laiko klaidų aptikimo ir veiksmingo jų tvarkymo mechanizmą, pvz., netinkamų įvesties tvarkymą, skaičiaus padalijimą iš nulio atliekant padalijimo operacijas ir daug daugiau.

Išimčių tvarkymas C++ apima tris raktinius žodžius: try, mesti ir gaudyti. Teiginys try leidžia vartotojui apibrėžti kodo bloką, kuris gali sukelti kode išimtį. Raktinis žodis mesti išmeta išimtį, jei aptinkamas patikrinus bloką po raktiniu žodžiu try. Raktinis žodis sugauti apima kodo bloką, kuris gali apdoroti išimtį, pastebėtą bandymo bloke.







1 pavyzdys: Išimčių tvarkymas padalijimo metu

Kodas parašytas siekiant patikrinti išimtis padalijimo metu.



#include
naudojant vardų erdvė std ;

tarpt pagrindinis ( ) {

dvigubai skaitiklis, vardiklis, padalijimas ;

cout << 'Įveskite skaitiklio reikšmę: ' ;
valgymas >> skaitiklis ;

cout <> vardiklis ;

bandyti {


jeigu ( vardiklis == 0 )
mesti 0 ;


padalinys = skaitiklis / vardiklis ;
cout << skaitiklis << '/' << vardiklis << '=' << padalinys << endl ;
}

sugauti ( tarpt num_exception ) {
cout << 'Klaida! Daliklis negali būti  ' << num_exception << endl ;
}

grąžinti 0 ;
}

Šioje programoje vartotojas įveda skaitiklio ir vardiklio reikšmę, deklaruotą main() skyriuje. Bandymo bloke if sakinys naudojamas norint patikrinti išimtį, ty ar vardiklis yra nulis, ar ne. Kadangi dalijimas negali būti atliktas su nuliniu dalikliu, jei vardiklis yra 0, jis išmes išimtį, o gaudymo blokas grąžins klaidos argumentą, priešingu atveju bus atlikta paprasta padalijimo operacija.







Vartotojas į vardiklį įveda skaitiklį 42 ir 0, o tai padaro išimtį, todėl programa grąžina klaidos argumentą.



Vartotojas įveda skaitiklį 42 ir 2 kaip vardiklį, nes nerasta išimtis, rezultatas po padalijimo grąžinamas.

2 pavyzdys Išimčių tvarkymas norint patikrinti amžių

Ši programa tikrina išimtis pagal vartotojo amžių.

#include
naudojant vardų erdvė std ;

/*
Čia norime mesti išimtį (amžius kaip išimtis), jei asmens amžius yra mažesnis nei 18 metų.
*/

tarpt pagrindinis ( )
{
// bandymo bloke tikrinama, ar amžius yra didesnis nei 18 metų.
bandyti
{
tarpt amžiaus ;
cout << 'Įveskite savo amžių, kad galėtumėte pasiekti:' ;
valgymas >> amžiaus ;

jeigu ( amžiaus >= 18 )
{
cout << 'Prieiga suteikta.' ;
}
// pasirinktinė išimtis išmetama, jei amžius yra jaunesnis nei 18 metų.
Kitas
{
mesti ( amžiaus ) ;
}
}
// užfiksuojama išmestoji išimtis ir rodoma norima išvestis (prieiga uždrausta!)
sugauti ( tarpt x )
{
cout << 'Prieiga uždrausta! Jūs esate nepilnametis.' << endl ;
}
grąžinti 0 ;
}

Šioje programoje apibrėžiamas kintamasis su sveikuoju skaičiumi. Vartotojo prašoma įvesti amžių ir išbandyti bloko patikrinimus, ar vartotojo amžius yra didesnis arba lygus 18. Jei tai netiesa, tada jis pateikia išimtį, o išimties blokas grąžins Prieiga uždrausta! Argumentas. Priešingu atveju prieiga bus suteikta.

Vartotojas įveda 12 metų amžių, kad patikrintų prieigos suteikimą, nes šis amžius yra jaunesnis nei 18 metų, todėl pateikiamas argumentas Prieiga uždrausta.

Vartotojas įveda 20 metų amžių, nes jis yra vyresnis nei 18 metų, todėl prieiga suteikiama vartotojui.

Pastaba : Jei programoje nėra gaudymo bloko, programa elgsis neįprastai ir netikėtai nutrūks, jei bus išimčių.

Išvada

Išimčių tvarkymas C++ reiškia veikimo laiko klaidų aptikimo ir efektyvaus jų tvarkymo mechanizmą. Tai apima tris raktinius žodžius bandyti, mesti ir gaudyti. Išimtis tikrinama dėl kodo trynimo bloke, raktinis žodis throw meta išimtį, jei randamas, o gaudymo blokas apdoroja trynimo bloko išimtį. Apdorojant išimtis, naudotojo patirtis tampa sklandi ir puiki, nes išvengiama vykdymo klaidų.