Jak snadno zvládnout výjimky v C++

Jak Snadno Zvladnout Vyjimky V C



Neočekávané události, ke kterým dojde během běhu programu, se označují jako výjimky nebo chyby. Výjimky se vyskytují během běhu a nelze je zachytit během kompilace, takže mohou způsobit vážné problémy v programu. Správné zpracování výjimek v programu C++ je pro programátora prvořadým cílem dosáhnout požadovaných výsledků.

Jak snadno zvládnout výjimky v C++

Zpracování výjimek v C++ se týká mechanismu detekce chyb za běhu a jejich efektivního zpracování, jako je zpracování neplatných vstupů, dělení čísla nulou v operacích dělení a mnoho dalších.

Zpracování výjimek v C++ zahrnuje tři klíčová slova: try, throw a catch. Příkaz try umožňuje uživateli definovat blok kódu, který může vyvolat výjimku v kódu. Klíčové slovo throw vyvolá výjimku, pokud je detekováno po kontrole bloku pod klíčovým slovem try. Klíčové slovo catch obsahuje blok kódu, který dokáže zpracovat výjimku pozorovanou v bloku try.







Příklad 1: Zpracování výjimek během dělení

Kód je napsán pro kontrolu výjimek během dělení.



#include
použitím jmenný prostor std ;

int hlavní ( ) {

dvojnásobek čitatel, jmenovatel, dělení ;

cout << 'Zadejte hodnotu čitatele: ' ;
jíst >> čitatel ;

cout <> jmenovatel ;

Snaž se {


-li ( jmenovatel == 0 )
házet 0 ;


divize = čitatel / jmenovatel ;
cout << čitatel << '/' << jmenovatel << ' = ' << divize << endl ;
}

chytit ( int num_exception ) {
cout << 'Chyba! Dělitel nemůže být  ' << num_exception << endl ;
}

vrátit se 0 ;
}

V tomto programu uživatel zadá hodnotu čitatele a jmenovatele deklarovaného v sekci main(). V bloku try se příkaz if používá ke kontrole výjimky, kterou je, zda je jmenovatel nula nebo ne. Protože dělení nelze provést s nulovým dělitelem, pokud je zjištěno, že jmenovatel je 0, vyvolá výjimku a blok catch vrátí argument chyby, jinak se provede operace jednoduchého dělení.







Uživatel zadá čitatel 42 a 0 ve jmenovateli, což vyvolá výjimku, takže program vrátí argument chyby.



Uživatel zadá čitatele 42 a 2 jako jmenovatele, protože nebyla nalezena žádná výjimka, vrátí se výsledek po dělení.

Příklad 2 Zpracování výjimek pro kontrolu stáří

Tento program kontroluje výjimky ve věku uživatele.

#include
použitím jmenný prostor std ;

/*
Zde chceme vyvolat výjimku (věk jako výjimku), pokud je věk osoby nižší než 18.
*/

int hlavní ( )
{
// kontrola, zda je věk vyšší než 18 v bloku try.
Snaž se
{
int stáří ;
cout << 'Pro přístup zadejte svůj věk: ' ;
jíst >> stáří ;

-li ( stáří >= 18 )
{
cout << 'Přístup umožněn.' ;
}
// vlastní výjimka je vyvolána, pokud je věk mladší 18 let.
jiný
{
házet ( stáří ) ;
}
}
// zachycení vyvolané výjimky a zobrazení požadovaného výstupu (přístup odepřen!)
chytit ( int X )
{
cout << 'Přístup odepřen! Jste nezletilí.' << endl ;
}
vrátit se 0 ;
}

V tomto programu je definována proměnná s celočíselnou hodnotou. Uživatel je požádán, aby zadal věk a vyzkoušel blokovou kontrolu, zda je věk uživatele vyšší nebo roven 18. Pokud to není pravda, vyvolá výjimku a blok výjimky vrátí Přístup odepřen! Argument. V opačném případě bude přístup povolen.

Uživatel zadá věk 12, aby zkontroloval udělení přístupu, protože tento věk je mladší 18 let, takže je vrácen argument Přístup odepřen.

Uživatel zadá věk 20 let, protože je starší 18 let, takže přístup je uživateli udělen.

Poznámka : Pokud v programu není žádný catch blok, bude se program chovat abnormálně a v případě výjimek se neočekávaně ukončí.

Závěr

Zpracování výjimek v C++ se týká mechanismu zjišťování chyb za běhu a jejich efektivního zpracování. Zahrnuje tři klíčová slova try, throw a catch. Výjimka je zkontrolována pro kód v bloku try, klíčové slovo throw vyvolá výjimku, pokud je nalezena, a blok catch zpracovává výjimku vyvolanou pro blok try. Zpracování výjimek umožňuje uživateli hladký a skvělý zážitek tím, že se vyhne chybám za běhu.