Paano Madaling Pangasiwaan ang Mga Pagbubukod sa C++

Paano Madaling Pangasiwaan Ang Mga Pagbubukod Sa C



Ang mga hindi inaasahang kaganapan na nagaganap habang tumatakbo ang programa ay tinutukoy bilang mga pagbubukod o mga error. Nangyayari ang mga pagbubukod sa panahon ng runtime, at hindi mahuli sa panahon ng compilation, kaya maaari silang magdulot ng mga seryosong problema sa programa. Ang mahusay na paghawak ng mga exception sa isang C++ program ay isang pangunahing layunin para sa isang programmer na makuha ang ninanais na mga resulta.

Paano Madaling Pangasiwaan ang Mga Pagbubukod sa C++

Ang Exception Handling sa C++ ay tumutukoy sa mekanismo ng pag-detect ng mga error sa run-time at paghawak sa mga ito nang mahusay, tulad ng paghawak ng mga di-wastong input, paghahati ng numero sa zero sa mga operasyon ng dibisyon, at marami pa.

Ang Exception Handling sa C++ ay nagsasangkot ng tatlong keyword: subukan, ihagis, at hulihin. Ang try statement ay nagpapahintulot sa user na tukuyin ang block ng code na maaaring magtaas ng exception sa code. Ang throw keyword ay nagtatapon ng exception kung natukoy pagkatapos suriin ang block sa ilalim ng try na keyword. Ang catch na keyword ay naglalaman ng bloke ng code na maaaring humawak sa exception na naobserbahan sa try block.







Halimbawa 1: Exception Handling Habang Dibisyon

Ang code ay isinulat upang suriin ang mga pagbubukod sa panahon ng paghahati.



#include
gamit namespace std ;

int pangunahing ( ) {

doble numerator, denominador, dibisyon ;

cout << 'Maglagay ng value ng numerator: ' ;
kumakain >> numerator ;

cout <> denominador ;

subukan {


kung ( denominador == 0 )
itapon 0 ;


dibisyon = numerator / denominador ;
cout << numerator << '/' << denominador << '=' << dibisyon << endl ;
}

mahuli ( int num_exception ) {
cout << 'Error! Ang divisor ay hindi maaaring  ' << num_exception << endl ;
}

bumalik 0 ;
}

Sa program na ito, inilalagay ng user ang halaga ng numerator at denominator na idineklara sa pangunahing() na seksyon. Sa try block, isang if statement ang ginagamit para suriin ang exception na kung ang denominator ay zero o hindi. Dahil ang paghahati ay hindi maaaring gawin gamit ang isang zero divisor kung ang denominator ay natagpuan na 0, ito ay magtapon ng isang pagbubukod at ang catch block ay magbabalik ng isang error na argumento kung hindi ang simpleng operasyon ng paghahati ay ginanap.







Ang user ay nag-input ng numerator 42 at isang 0 sa denominator, na nagtatapon ng exception, kaya ibinalik ng program ang error argument.



Ang gumagamit ay nag-input ng numerator 42 at 2 bilang isang denominator, dahil walang nakitang eksepsiyon, ang resulta pagkatapos bumalik ang dibisyon.

Halimbawa 2 Exception Handling para Suriin ang Edad

Sinusuri ng program na ito ang mga pagbubukod sa edad ng gumagamit.

#include
gamit namespace std ;

/*
Dito, gusto naming itapon ang exception (edad bilang exception) kung ang edad ng tao ay wala pang 18.
*/

int pangunahing ( )
{
// tinitingnan kung ang edad ay higit sa 18 sa try block.
subukan
{
int edad ;
cout << 'Ilagay ang iyong edad para ma-access ang: ' ;
kumakain >> edad ;

kung ( edad >= 18 )
{
cout << 'Ibinigay ang access.' ;
}
// custom exception na itinapon kung ang edad ay wala pang 18.
iba pa
{
itapon ( edad ) ;
}
}
// paghuli sa itinapon na pagbubukod at pagpapakita ng nais na output (pag-access ay tinanggihan!)
mahuli ( int x )
{
cout << 'Access denied! You are underage.' << endl ;
}
bumalik 0 ;
}

Sa program na ito, tinukoy ang isang variable na may integer value. Hinihiling sa user na ipasok ang edad at subukan ang mga block check kung ang edad ng user ay pataas o katumbas ng 18. Kung hindi ito totoo, maglalagay ito ng exception, at ibabalik ng exception block ang Access denied! Pangangatwiran. Kung hindi, ang pag-access ay ibibigay.

Ilalagay ng user ang edad na 12 upang suriin ang access grant, dahil ang edad na ito ay wala pang 18, kaya ibinalik ang Access denied argument.

Ang gumagamit ay nag-input ng edad na 20, dahil ito ay higit sa 18, kaya ang pag-access ay ibinibigay sa gumagamit.

Tandaan : Kung walang catch block sa programa, kung gayon ang programa ay kumikilos nang abnormal at magwawakas nang hindi inaasahan sa kaso ng mga pagbubukod.

Konklusyon

Ang Exception Handling sa C++ ay tumutukoy sa mekanismo ng pag-detect ng mga error sa run-time at paghawak sa mga ito nang mahusay. Nagsasangkot ito ng tatlong keyword na subukan, itapon, at hulihin. Ang exception ay sinusuri para sa code sa try block, ang throw keyword ay naghagis ng exception kung natagpuan, at ang catch block ang humahawak sa exception na itinapon para sa try block. Ang paghawak sa mga exception ay ginagawang maayos at mahusay ang karanasan ng user sa pamamagitan ng pag-iwas sa mga error sa run-time.