C++ Programm alle Fehler abfangen
-
Hi zusammen, ich habe mal eine Frage:
In meinem Code fange ich viele möglichen Fehler ab. Sobald ein Fehler auftritt, wird das Programm abgebrochen.Nun wird mein Programm jedoch von einem anderem Programm aufgerufen, genauer ist mein Programm nur eines von vielen.
Wenn mein Programm einen Fehler wirft, würde mein Programm alle anderen Programme beenden, mein Programm soll aber eigentlich nur einen Fehler zurückliefern, die anderen Programme aber nicht beenden.
Kann ich dies irgendwie realisieren?
Kann ich mein ganzes Programm mit einem Try Catch Block umkapseln oder muss ich meine "throws" im Code ändern?
-
int main() { try { // Dein Code hier ... } catch(...) { return 345; // Oder sonstigen Fehlercode. } return 0; // Success, kein Fehler. }Du kannst natürlich auch andere Catch-Blöck machen mit anderen Fehlercodes. Den zurückgelieferten Code deines Programmes, kann von anderen Programmen eingesehen werden.
Grüssli
-
ah super vielen Dank,
wenn mein Programm mehrere Schnittstellen besitzt, muss ich dann vermutlich um alle diese Schnittstellen diese Try Catch Blöcke setzen.
Ich probiere es dann gleich mal aus.
-
Hi,
nur der Vollständigkeit halber: Damit fängst Du natürlich nur "Fehler" ab, die sich durch eine (C++-)Exception bemerkbar machen. Die bei Anfängern besonders beliebten "Segmentation faults" (Zugriff auf nicht initialisierten/unerlaubten/... Speicher) sind davon unberührt.
Sprich: Dein Programm kann trotzdem noch "abkacken".
Gruß,
Simon2.
-
Aber einfach mal alle Exceptions zu fangen und bei jeder den gleichen Fehlercode zurückzuliefern finde ich nicht so eine gute Idee. Exceptions sind normalerweise hierarchisch aufgebaut, je nachdem sollte ein Fehler besser spezifisch behandelt werden.