void my_new_handler() { int bytes_find = find_some_memory(); if( bytes_find < min_allocation) throw bad_alloc(); } Так вот, для генерации исключения требуется объект, т.е. throw bad_alloc() создаст объект bad_alloc. Будет ли созданно исключение, если объем свободной памяти не достаточен для создания объекта bad_alloc?