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.