Stránka 1 z 1
C++ zpravování výjimek problém
Napsal: ned 4. dub 2010, 15:42
od johnybest
Nevim proc ale kdyz zkousim do useku programu pridavat try () throw () a catch () treba pro osetreni pripadu kdy se bude delit nulou tak mi to nikdy nefunguje a to ani u samplu kde by to podle vseho fungovat melo. Zkompilovanej program proste spadne nebo je automaticky ukoncen kdyz dojde k deleni nulou v danym useku try.
Kód: Vybrat vše
#include <iostream>
using std::cout;
int main()
{
int a=10,b=0;
try
{
cout << "a deleno b je: " << a/b;
}
catch (...)
{
cout << "Neco se nepodarilo";
}
return 0;
}
Re: C++ zpravování výjimek problém
Napsal: ned 4. dub 2010, 20:56
od Maranov
I při normálním spuštění? Je možné, že ti výjimky schválně odchytává IDE.
Jinak zkontroluj třídu, odchycené výjimky. (v catch()).
Jsem spíše C#ař, takže můžu mlít nepřesnosti...
Re: C++ zpravování výjimek problém
Napsal: úte 6. dub 2010, 11:07
od johnybest
No jeste se na to podivam ale vim ze mi to dela i ve windows i v linuxech kde pouzivam jiny IDE
Re: C++ zpravování výjimek problém
Napsal: stř 7. dub 2010, 21:00
od Ondrej1
Co je to za kompilátor? To je dost podstatné.
Při programování ve windows v C++ existují dva typy výjimek, c++ výjimky a
SEH, dělení nulou je výjimka SEH, nikoli C++ Ve starších kompilátorech (VS6) konstrukce catch(...) chytala obojí druh výjimek, za což byly (kompilátory) podrobeny kritice. V novějších kompilátorech (VS2008) chytá catch(...) pouze c++ výjimky, k obsluze dělení nulou apod je potřeba použít SEH, viz předchozí odkaz.
Re: C++ zpravování výjimek problém
Napsal: čtv 8. dub 2010, 23:12
od johnybest
jj díky moc mrknu na to
Re: C++ zpravování výjimek problém
Napsal: pon 12. dub 2010, 15:06
od Ondrej1
Dobrá literatura na toto téma je kniha od Johna Robinse "Ladění a testování aplikaci pro .NET a Windows", vydala česky Grada, je tam tomu věnována kapitola 13.