Ermitteln von Ausnahmeobjekten anhand von Verweisen, Provisorien und Lebensdauerthemen
Betrachten Sie den folgenden Code:
#include <iostream>
#include <stdexcept>
void foo()
{
throw std::runtime_error("How long do I live?");
}
int main()
{
try
{
foo();
}
catch (std::runtime_error& e)
{
std::cout << e.what() << std::endl;
}
}
Warum kann ich die Ausnahme anhand eines Verweises abfangen?std::runtime_error("How long do I live?")
ein Wert?
Wie kommt es, dass das Ausnahmeobjekt im catch-Block noch vorhanden ist?
Wo genau werden ausgelöste Ausnahmeobjekte gespeichert? Was ist ihr Leben?