Ich arbeite in C++ Umgebung und:
a) Wir sind verboten Ausnahmen verwenden
b) Es ist application/Datenserver-Code, der viele Anfragen von verschiedenen ArtenC++ Code Reinheit
I wertet haben einfache Klasse, die das Ergebnis der Serveroperation einkapselt, das dort auch intern für viele Funktionen verwendet wird.
class OpResult
{
.....
bool succeeded();
bool failed(); ....
... data error/result message ...
};
Als ich versuche, alle Funktionen klein und einfach zu haben, viele Blöcke wie folgt entstehen:
....
OpResult result = some_(mostly check)function(....);
if (result.failed())
return result;
...
Die Frage ist, ist es eine schlechte Praxis zu machen Makro wie folgt aussehen und es verwenden, überall?
#define RETURN_IF_FAILED(call) \
{ \
OpResult result = call; \
if (result.failed()) \
return result; \
}
Ich verstehe, dass jemand es böse nennen kann, aber gibt es einen besseren Weg? Welchen anderen Weg, um Ergebnisse zu verarbeiten und viel Bloat-Code zu vermeiden, würden Sie vorschlagen?
Was ist, wenn eine Reinigung erforderlich ist? –
Nun, meine akzeptierte Antwort wurde von einem zufälligen Moderator, der es einfach nicht mochte, einseitig gelöscht. –