Если я брошу какую-нибудь строку из функции h ()
f()->g()->h()
таким образом
throw std::string("error");
и поймать только в f (). Где программа выделяет память для этой строки? Очевидно, он не может разместить его в стеке h (). Если это стек f (), каким образом он знает, в каком месте он должен располагаться?