データフロー解析に基づいて、常に null 許容性契約に違反している、例外をスローする可能性がある、または単に冗長であるコードコンストラクトを報告します。

例:

if (array.length < index) {
  System.out.println(array[index]);
} // 配列のインデックスが常に範囲を超えている

if (str == null) System.out.println("str is null");
System.out.println(str.trim());
// 最後のステートメントが NPE をスローする可能性がある

@NotNull
Integer square(@Nullable Integer input) {
    // メソッド契約に違反している
    return input == null ? null : input * input;
}

このインスペクションの動作は、nullability アノテーション、@Contract アノテーション、@Range アノテーションなどのさまざまなアノテーションで制御できます。

インスペクションの構成:

IntelliJ IDEA 2022.3 より前は、このインスペクションは "定数条件および例外" インスペクションの一部でした。 現在、そのインスペクションは "定数値" と "null 許容性とデータフローの問題" の 2 つのインスペクションに分割されています。