3

次のスニペットに似たコードがあります。

public void foo(Order o) {
    ...
    checkInput(o, "some error message");
    doSomehing(o.getId());
}

private void checkInput(Object o, String message) {
    if (o == null) {
        throw new SomeRuntimeException(message);
    }
}

そして、「NP_NULL_ON_SOME_PATH」の問題を報告する Findbugs を取得しました。

説明は次のとおりです。

There is a branch of statement that, if executed, guarantees that a null value will be dereferenced, which would generate a NullPointerException when the code is executed. Of course, the problem might be that the branch or statement is infeasible and that the null pointer exception can't ever be executed; deciding that is beyond the ability of FindBugs.

私の質問は次のとおりです。

  1. この例では、誤検知として扱うことができますか?
  2. null テストを別のメソッドに入れるのは良い習慣ですか? 実際の null チェック メソッドはサンプル メソッドよりも少し長いので、どこでもコードを繰り返したくありません。

ありがとう!

4

1 に答える 1