Ich versuche, Fehlercode aus dem Konstruktor zurückzugeben, da der Konstruktor keinen Fehlercode zurückgibt, habe ich versucht, eine Ausnahme auf den Konstruktor zu setzen. Dann gebe ich im catch-Block meinen passenden Fehlercode zurück. Ist dies eine geeignete Methode, um Fehlercode vom Konstruktor zurückzugeben?Wie man Fehlercode vom Konstruktor zurückgibt?
#include <exception>
#include <iostream>
class A {
public:
A() { throw std::runtime_error("failed to construct"); }
};
int main() {
try {
A a;
} catch (const std::exception& e) {
std::cout << "returining error 1 \n";
return 1;
}
return 0;
}
Für mich ist es eine gute Übung, den Konstruktor noexcept zu machen ... Vielleicht könnte ein guter Weg, um einen Zustand auf das Objekt wie: ungültig. Ich bin auf der Suche nach einer besseren Antwort sowie –
Verwenden Sie einfach Ausnahmen überall. Fehlerrückgabewerte haben alle möglichen Probleme, insbesondere werden sie zu leicht ignoriert. –
Ja, Konstruktor sollte entweder ein gültiges Objekt erstellen oder eine Ausnahme auslösen. – VTT