Re: какое исключение ловить?
От: 0xFADE США github.com/NotImplemented
Дата: 13.02.04 15:31
Оценка: -1
Здравствуйте, Денис Ильин, Вы писали:

ДИ>Добрый день. Есть интересный вопросец.


ДИ>минипрограмка


ДИ>vector <int> nData;

ДИ>while(TRUE)
ДИ>{
ДИ> try
ДИ> {
ДИ> nData.push_back(rand());
ДИ> }
ДИ> catch(bad_alloc ba)
ДИ> {
ДИ> printf("bad alloactor!");
ДИ> }
ДИ>}

ДИ>что результат её работы в NT-образных платформах одинаковый:

ДИ>через некоторое время выскакивает мессага "Out of memory"
ДИ>Спасибо за ответы.

Боюсь я Вам конкретного ответа не дам, выскажу лишь некоторые соображения.
Соощение появляется из-за того, что система не может осуществить вызов printf()
(Выделить память для размещения параметров в стеке.)

ДИ>А мне бы хотелось ловить такие вещи в виде исключений (что бы было в стиле С++)

ДИ>Есть ли какой нибудь иной способ отлавливать невозможность выделить память
ДИ>(делать это до системы)? (а то следить за свободной памятью геморойно
ДИ>и неудобно — и вообще не в стиле С++)

Я долго медитировал над этим абзацем. Можно попросить Вас сформулировать мысль четче?
Отлавливать невозможость выделить память до системы?
Вмешиваться в работу операционной системы в стиле С++?
Насколько я понял Ваши рассуждения, эта проблема надумана, или перед Вами стояла другая задача, которую Вы свели к данной проблеме.
Копайте в сторону kernel API и исходников OS.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.