Обработка исключений C++

Итак, я писал код и заметил, что, кроме синтаксических ошибок, ошибок типов и других ошибок времени компиляции, C++ не генерирует никаких других исключений. Поэтому я решил проверить это с помощью очень простой программы:

#include<iostream>

int main() {
    std::count<<5/0<<std::endl;
return 1
}

Когда я скомпилировал ее с помощью g++, g++ выдал мне предупреждение о том, что я делю на 0. Но код все равно скомпилировался. Затем, когда я запустил его, он напечатал какое-то действительно большое произвольное число. Когда я хочу знать, как С++ справляется с исключениями? Целочисленное деление на 0 должно быть очень тривиальным примером того, когда должно быть выдано исключение и программа должна завершиться.

Должен ли я по существу заключать всю свою программу в огромный блок try, а затем перехватывать определенные исключения? Я знаю, что в Python, когда возникает исключение, программа немедленно завершает работу и распечатывает ошибку. Что делает С++? Существуют ли даже исключения во время выполнения, которые останавливают выполнение и убивают программу?

5
задан laurent 7 June 2012 в 04:31
поделиться