Dank einer Frage bei Code Review geriet ich in eine kleine Meinungsverschiedenheit (was im Wesentlichen eine Gelegenheit ist, etwas zu lernen) darüber, was genau die zyklomatische Komplexität für den folgenden Code ist.
public static void main(String[] args) {
try {
thro();
thro();
thro();
thro();
thro();
thro();
thro();
}
catch (NullPointerException e) {
}
}
private static Random random = new Random();
public static void thro() throws NullPointerException {
if (random.nextBoolean())
throw new NullPointerException();
System.out.println("No crash this time");
}
Wenn Sie diesen Code in Eclipse schreiben und das Eclipse-Metrik-Plugin verwenden , wird mir mitgeteilt, dass die McCabe Cyclomatic Complexity für die Hauptmethode 2 und für die dort angegebene thro
Methode 2 ist.
Jemand anderes sagt mir jedoch, dass die Komplexität des thro
mehrfachen Aufrufs gleich ist number of calls * method complexity
, und behauptet daher, dass die Komplexität der Hauptmethode 7 * 2 = 14 ist.
Messen wir verschiedene Dinge? Können wir beide richtig liegen? Oder wie ist die tatsächliche zyklomatische Komplexität hier?