Die meisten guten statischen Code-Analysatoren haben einen maximalen Pegel der Einrückung aus genau diesem Grund. Es wird sehr schwierig, alle logischen Fälle mit solch hohen Verschachtelungsebenen zu behandeln.
Ist das der typische Newbie-Fehler beim Überprüfen aller Fehlerzustände in einem großen Knoten an der Spitze einer Funktion?
Wenn dies der Fall ist, möchten Sie vielleicht den Autor des Codes dazu bringen, ihn in eine Folge von if-Anweisungen anstatt dieses stark verschachtelten Konstrukts zu ändern.
if(error1) {
/* report error 1 and exit */
}
if(error2) {
/* report error 2 and exit */
}
if(error3) {
/* report error 3 and exit */
}
...
macht es viel einfacher, den Code zu testen und auch eher als eine generisch „schlecht ist etwas“ maßgeschneiderte Informationen zu einem bestimmten Fehler zu liefern Aussage.
ich bin daran interessiert, wie Sie diesen Code Refactoring ... –
ich sehe nicht, warum Das ist schlecht, es könnte sehr gut der beste Weg sein, das Problem zu lösen, an dem er/sie arbeitet. – harryovers
Es wird die gleiche Anzahl von Flaggen und Kombinationen geben, egal wie Sie Ihre 'if's arrangieren. – Kobi