2015-06-26 13 views
5

Jestem nowy w używaniu CLion i próbuję napisać prosty program, aby zrozumieć, jak to działa. Jestem na Windows 8 + cygwin program jest:Wyjątek wyrzucania i jego wiadomości

int main() 
{ 
    throw std::exception(); 
} 

mam w konsoli wyjścia:

C:\....\bin.exe 

Process finished with exit code 0 

Gdzie komunikaty dotyczące programu został przerwany lub coś innego? Nie było niczego i jak mam wykryć, czy mój program został faktycznie przerwany przez wyrzucenie wyjątku?

+0

Jakie są flagi kompilatora? –

+0

"Proces zakończony kodem wyjścia 0" To nie ma sensu. – edmz

+0

@black Dlaczego? To było dokładnie wyjście konsoli. – stella

Odpowiedz

1

Dzieje się tak dlatego, że nie próbujesz złapać, a zdarza się coś takiego jak stos unwitted.A funkcja, jeśli nie masz catch it idzie w dół stosu, dopóki nie osiągnie głównego i jeśli nie ma haczyka zakończ. Jeśli twoja funkcja wyrzuci wyjątek bez haczyka, to natychmiast przerwij i wróć do funkcji dzwoniącego.if Funkcja dzwoniącego jest główna i nie masz haczyka. Program kończy się.it idzie w dół. Stos i bez złapania gdzieś w ten łańcuch funkcji zakończy program.