Я тут рассматривал главу 14.2.1 "Производные исключение"
у Страустрапа и понял, что не понимаю одной базовой вещи.
Есть у нас, согласно книжке,
некий
class int_overflow{
const char *op;
public: int_overflow(cont char *p){op=p}
/*...*/
};
с которым мы поступаем вот так
int add()
{
/*...*/
if(/*...*/)
throw int_overflow("+");
/*...*/
}
Так вот, строка с плюсом отведена на стеке,
и когда мы попытаемся анализировать исключение,
мы обратимся к довольно странному куску стека,
который скорее свободен, чем занят.