Code Reviewでの質問のおかげで、下のコードのCyclomatic Complexityが正確に何であるかについて少し意見の相違(本質的に何かを学ぶ機会)になりました。
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");
}
Eclipseでこのコードを記述し、Eclipseメトリックプラグインを使用すると、メインメソッドのMcCabe Cyclomatic Complexityは2であり、thro
メソッドの場合は2であることがわかります。
しかし、他の誰かが私に、thro
複数回の呼び出しの複雑さはであると言っておりnumber of calls * method complexity
、したがって、メインメソッドの複雑さは7 * 2 = 14であると主張しています。
異なるものを測定していますか?二人とも正しいことはできますか?または、実際のサイクロマティックの複雑さは何ですか?