Die C++ Core Guidelines behandeln den Einsatz von goto als eng begrenzte Ausnahme. Im Beitrag vom 20. August 2018 geht es um Fehlerpfade in Code, der keine Ausnahmen werfen kann und für den auch keine final_action-Implementierung der Guideline Support Library bereitsteht.
Für solche Fälle nennen die Guidelines drei Wege: Programme können bei einem Fehler sofort abbrechen, Fehlercodes systematisch zurückgeben oder eine eigene Strategie für die Ressourcenfreigabe einsetzen. Der Beitrag ordnet diese Regeln in den Abschnitt zur Fehlerbehandlung ein und zeigt, warum die Entscheidung gegen Ausnahmen nicht automatisch zu unstrukturierten Sprüngen führen sollte.
Fehlerbehandlung bleibt an Ressourcen gebunden
In C++ müssen offene Ressourcen auch auf einem Fehlerpfad zuverlässig freigegeben werden. RAII übernimmt diese Aufgabe normalerweise über Objekte und Destruktoren. Der Text verweist deshalb auf die offizielle Regel ES.76 der C++ Core Guidelines, die goto grundsätzlich vermeiden will, und beschreibt die wenigen Situationen, in denen ein Sprung zu einer gemeinsamen Aufräumstelle in C-Code oder ausnahmearmem Code vertretbar sein kann.
Der Artikel setzt die bestehende Reihe zu den C++ Core Guidelines mit einem konkreten Fehlerbehandlungsfall fort. Für Spiel-Engines und andere lange laufende Anwendungen bleibt dabei vor allem die klare Trennung von Ressourcenverwaltung, Fehlerweitergabe und Kontrollfluss relevant.

