Większość dobrych statyczne analizatory kodowe mają maksymalny poziom wcięcia z tego powodu. Bardzo trudno jest obsłużyć wszystkie logiczne przypadki z tak wysokim poziomem zagnieżdżania.
Czy jest to typowy błąd początkującego sprawdzenia wszystkich błędów w jednej dużej bryle u góry funkcji?
Jeśli tak, możesz chcieć, aby autor kodu zmienił go na ciąg instrukcji if, a nie na silnie zagnieżdżoną konstrukcję.
if(error1) {
/* report error 1 and exit */
}
if(error2) {
/* report error 2 and exit */
}
if(error3) {
/* report error 3 and exit */
}
...
sprawia, że znacznie łatwiej przetestować kod, a także w celu zapewnienia konkretnych informacji na temat konkretnego błędu zamiast jednego „coś jest złe” oświadczenie generycznych.
jestem zainteresowany jak byłaby ten kod ... –
nie widzę dlaczego to jest złe, może to być najlepszy sposób rozwiązania problemu, nad którym pracuje – harryovers
. Będzie taka sama liczba flag i kombinacji, bez względu na to, jak zorganizujesz swoje "jeśli". – Kobi