Kā viegli rīkoties ar izņēmumiem programmā C++

Ka Viegli Rikoties Ar Iznemumiem Programma C



Negaidīti notikumi, kas notiek programmas darbības laikā, tiek saukti par izņēmumiem vai kļūdām. Izņēmumi rodas izpildlaikā, un tos nevar uztvert kompilācijas laikā, tāpēc tie var radīt nopietnas problēmas programmā. Laba izņēmumu apstrāde C++ programmā ir programmētāja galvenais mērķis, lai iegūtu vēlamos rezultātus.

Kā viegli rīkoties ar izņēmumiem programmā C++

Izņēmumu apstrāde programmā C++ attiecas uz izpildlaika kļūdu noteikšanas un efektīvas apstrādes mehānismu, piemēram, nederīgu ievades apstrādi, skaitļa dalīšanu ar nulli dalīšanas operācijās un daudz ko citu.

Izņēmumu apstrāde programmā C++ ietver trīs atslēgvārdus: mēģināt, mest un noķert. Izmēģinājuma paziņojums ļauj lietotājam definēt koda bloku, kas var radīt izņēmumu kodā. Atslēgvārds “mest” rada izņēmumu, ja tiek konstatēts pēc bloka pārbaudes zem atslēgvārda “try”. Noķeršanas atslēgvārds satur koda bloku, kas var apstrādāt try blokā novēroto izņēmumu.







1. piemērs: Izņēmumu apstrāde sadalīšanas laikā

Kods ir rakstīts, lai pārbaudītu izņēmumus sadalīšanas laikā.



#include
izmantojot nosaukumvieta std ;

starpt galvenais ( ) {

dubultā skaitītājs, saucējs, dalījums ;

cout << 'Ievadiet skaitītāja vērtību:' ;
ēšana >> skaitītājs ;

cout <> saucējs ;

mēģināt {


ja ( saucējs == 0 )
mest 0 ;


nodaļa = skaitītājs / saucējs ;
cout << skaitītājs << '/' << saucējs << '=' << nodaļa << endl ;
}

noķert ( starpt izņēmuma_skaitlis ) {
cout << 'Kļūda! Dalītājs nevar būt  ' << izņēmuma_skaitlis << endl ;
}

atgriezties 0 ;
}

Šajā programmā lietotājs ievada galvenajā () sadaļā norādīto skaitītāja un saucēja vērtību. Izmēģināšanas blokā if paziņojums tiek izmantots, lai pārbaudītu izņēmumu, proti, vai saucējs ir nulle vai nav. Tā kā dalīšanu nevar veikt ar nulles dalītāju, ja tiek konstatēts, ka saucējs ir 0, tas radīs izņēmumu un uztveršanas bloks atgriezīs kļūdas argumentu, pretējā gadījumā tiek veikta vienkārša dalīšanas darbība.







Lietotājs saucējā ievada skaitītāju 42 un 0, kas rada izņēmumu, tāpēc programma atgriež kļūdas argumentu.



Lietotājs kā saucēju ievada skaitītāju 42 un 2, jo nav atrasts neviens izņēmums, rezultāts pēc dalīšanas atgriežas.

2. piemērs Izņēmumu apstrāde, lai pārbaudītu vecumu

Šī programma pārbauda izņēmumus lietotāja vecumā.

#include
izmantojot nosaukumvieta std ;

/*
Šeit mēs vēlamies mest izņēmumu (vecums kā izņēmums), ja personas vecums ir mazāks par 18 gadiem.
*/

starpt galvenais ( )
{
// pārbaudes blokā pārbauda, ​​vai vecums ir lielāks par 18 gadiem.
mēģināt
{
starpt vecums ;
cout << 'Ievadiet savu vecumu, lai piekļūtu:' ;
ēšana >> vecums ;

ja ( vecums >= 18 )
{
cout << 'Piekļuve piešķirta.' ;
}
// pielāgots izņēmums tiek izmests, ja vecums ir jaunāks par 18 gadiem.
cits
{
mest ( vecums ) ;
}
}
// izmestā izņēmuma uztveršana un vēlamās izvades parādīšana (piekļuve liegta!)
noķert ( starpt x )
{
cout << 'Piekļuve liegta! Jūs esat nepilngadīga.' << endl ;
}
atgriezties 0 ;
}

Šajā programmā ir definēts mainīgais ar veselu skaitļa vērtību. Lietotājam tiek lūgts ievadīt vecumu un mēģināt bloķēt, vai lietotāja vecums ir lielāks vai vienāds ar 18. Ja tā nav patiesa, tiek parādīts izņēmums, un izņēmuma bloks atgriezīs Piekļuve liegta! Arguments. Pretējā gadījumā piekļuve tiks piešķirta.

Lietotājs ievada 12 gadu vecumu, lai pārbaudītu piekļuves piešķiršanu, jo šis vecums ir jaunāks par 18 gadiem, tāpēc tiek atgriezts arguments Piekļuve liegta.

Lietotājs ievada 20 gadu vecumu, jo tas ir vecāks par 18 gadiem, tāpēc lietotājam tiek piešķirta piekļuve.

Piezīme : Ja programmā nav noķeršanas bloka, programma izturēsies neparasti un izņēmumu gadījumā negaidīti beigsies.

Secinājums

Izņēmumu apstrāde programmā C++ attiecas uz izpildlaika kļūdu noteikšanas un efektīvas apstrādes mehānismu. Tas ietver trīs atslēgvārdus: mēģināt, mest un noķert. Izņēmums tiek pārbaudīts kodam try blokā, atslēgvārds throw izmet izņēmumu, ja tas tiek atrasts, un noķeršanas bloks apstrādā izņēmumu, kas tiek izmests try blokam. Izņēmumu apstrāde padara lietotāja pieredzi vienmērīgu un lielisku, izvairoties no izpildlaika kļūdām.