Jak používat std::exception

Jak používat std::exception

Příspěvekod Wlezley » 26 listopad 2012 01:49:57

Viděli jste už v nějakém kódu sekci try/catch?
RAW CODE
try
{
// Kód kde může nastat fatální chyba
}
catch( /* hotnota která se zachytává při chybě */ )
{
// Když nastane fatální chyba, provede se tento kód (může se využít zachytávaná hodnota k určení chyby)
}

Exception je něco, co se zachytává pomocí catch().

STD má vlastní exception. Využívá se v kritických bodech, například při manipulaci s řetězci. Příklad:
RAW CODE
#include <iostream>
#include <string>

int main()
{
std::string strInput = "123456789abcdefgh";
try
{
std::string strTemp(input, input.size()*2, input.size()*2);
std::cout << strTemp;
}
catch(std::exception &exc)
{
std::cout << exc.what() << std::endl;
}
std::cout << "Program pokracuje." << std::endl;
return 0;
}

V příkladu dojde k chybě, protože string se bude pokoušet inicializovat strTemp s neplatnou pozicí i velikostí stringu strInput. Bez exception by došlo k selhání programu a nemohl by pokračovat dále.
Uživatelský avatar
Wlezley
 
Příspěvky: 316
Registrován: 24 září 2011 22:54:46
Bydliště: Plzeň
Projekt: Wlezley EU

Zpět na C/C++

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


cron