Mit diesem Code:
int main()
{
try
{
throw -1;
}
catch (int& x)
{
std::cerr << "We caught an int exception with value: " << x << std::endl;
}
std::cout << "Continuing on our merry way." << std::endl;
return 0;
}
Wir haben:
/tmp$ ./prorgam.out
Continuing on our merry way
We caught an int exception with value: -1
Wie funktioniert der catchBlock gelesen , -1wie int&? Wir konnten einer nicht konstanten Wertreferenz keinen Wert zuweisen.
Und warum wird die zweite std::coutAnweisung vor der ersten std::cerrAnweisung ausgeführt?
error streamnicht umgeleitet standard stream.
throwerstellt eine Kopie (oder verschiebt) das Objekt, das Sie an das Objekt übergeben. Die Referenz ist an diese Kopie gebunden. Es macht irgendwie Sinn, dass die Kopie ein Wert ist.
We caught an int exception with value: -1Zeile sollte zuerst gedruckt werden.