Re: MSVC6.0 и обработка исключений new
От: dupamid Россия  
Дата: 18.07.02 12:10
Оценка:
Здравствуйте Alexander_1983, Вы писали:

A1>Следующая проблема:

A1>у меня приложение написанное с использованием MFC. Выделяю память в конструкторе m_piBuf = new int[iSize], нужно обрабатывать ошибки выделения памяти. Согласно стандарту в случае ошибки при выделении new вернет NULL и бросит исключение std::bad_alloc, согласно документации по MFC будет брошено исключение CMemoryExeption — у меня же в этом месте возбуждается какое-то другое исключение(не CExeption и не std::exeption, отлавливается только на catch(...)). Хотелось бы знать что же все таки происходит. Может нужно включить какие-то опции компилятора(поддержка исключений у меня ВКЛЮЧЕНА). Более того, поиск в MSDN'е поддалкивает меня к мысли, что MSVC6.0 не поддерживает std::bad_alloc, и спецификацию исключений. Помогите разобраться.

А как ты ловишь исключения? Попробуй ловить их по ссылке или указателю, так как выбрасываетсмя ни CExeption, а производный от него класс. Скорее всего выбрасывается все-таки CMemoryExeption, но по указателю. А лучше, сходит под отладчиком и все узнаешь сам. Для этого можно заставить отладчик останавливаться при выбросе исключения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.