Добрый день.
Требуется очередной ликбез на тему обработки исключений.
Вот код, намеренно приводящий к ошибке (процесс вылетает):
iLevel = 0;
BidMap::const_iterator c_Bit = (*c_insBit).second.begin();
while ( iLevel < _depth || c_Bit != (*c_insBit).second.end() ) // условие ИЛИ приводит к тому, что итерация случится, даже если итератор указывает на конец контейнера
{
// попытка обращения к элементу массива, когда итератор указывает на конец контейнера - ВЫЛЕТ
double P = (*c_Bit).first;
c_Bit++;
iLevel++;
}
Вызов функции, выполняющей этот код, обрамлен блоком try-catch(...), в опциях проекта установлено Enable C++ Exceptions — Yes With SEH Exceptions (/EHa). Почему я не попадаю в блок catch, а вылетаю?