Из С++ 11 standard (15.1.p4):
Память для объекта исключения выделяется в неуказанном путь, за исключением случаев, указанных в 3.7.4.1.
Что делать, если выделение не удастся - вместо этого оно выбрасывает std::bad_alloc? Вызовите std::terminate? Не выбрано?