Я пробовал этот фрагмент кода, чтобы проверить, перехватывается ли исключение деления на ноль:
int main(int argc, char* argv[])
{
try
{
//Divide by zero
int k = 0;
int j = 8/k;
}
catch (...)
{
std::cout<<"Caught exception\n";
}
return 0;
}
Когда я выполнил это с помощью VC6, обработчик перехвата был выполнен, и на выходе было «Поймано исключение». Однако, когда я скомпилировал это с использованием VS2008, программа потерпела крах, не выполнив блок catch. В чем может быть причина разницы?