Dieses Programm gibt nicht die Ausgabe, die ich erwarte es zu geben.Wie funktioniert das erneute Programmieren, wenn mehrere Programme vorhanden sind?
Nach meinem Verständnis von erneut in C++, sollte es den nächsten catch-Block des Programms ausführen, aber es führt nicht den catch-Block und stattdessen wird das nächste Programm ausgeführt. Was macht das Retrowing eigentlich?
Die Ausgabe, die es gibt, ist "intcaught", aber ich erwartete, dass es "intcaughtcaught" ausgibt. Was ist los mit meiner Argumentation?
#include <iostream>
using namespace std;
template <class t>
void sign(t a) {
try {
throw a;
} catch (int i) {
cout << "int";
throw;
}
}
main() {
try {
sign<int>(1);
sign<int>('1');
} catch (...) {
cout << "caught";
}
}
Versuchen Sie mit Debugger, es ist wirklich gut im Umgang mit dieser Art von Problemen – alexeykuzmin0
Ich habe versucht, Ihre Sprache einige zu klären, aber ich bin mir nicht sicher, was Sie mit "Programm" gemeint, so dass ich nicht in der Lage, es vollständig zu klären. Könnten Sie bitte erklären, was Sie mit "Programm" meinen? – jaggedSpire
_ "Stattdessen wird das nächste Programm ausgeführt" _ Welches nächste Programm? –