findbugs无法检测NumberFormatException

时间:2016-02-18 20:12:51

标签: java intellij-idea findbugs

我使用findbugs intellij plugin并且它无法在以下代码中检测到潜在的NumberFormatException:

// potentially throw uncatched NumberFormatException exception and crash the program
public void foo() {
    int s = Integer.parseInt("ddd");
    System.out.println(s);
}

有一条名为method might drop exception的规则 因此我认为它应该能够找到答案。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

DE_MIGHT_DROP指的是"吞噬"的异常,即即使它们被抛出也未正确报告。您的方法将抛出异常,因此满足DE_MIGHT_DROP。

我不认为有一个探测器可以找到你想要的东西,因为探测器无法知道你是否想要捕获异常。

答案 1 :(得分:0)

FindBugs检测错误和错误模式。问题是,这肯定是一个错误,但不清楚这适合的错误模式以及这种错误模式在野外发生的频率。如果不是简单地撕掉整个示例,可以添加一些可以添加的排名提议模式:

  1. UM:方法调用解析常量值(UM_UNNECESSARY_PARSE)
  2. Dm:与parseXXX(DMI_CONSTANT_PARSE)一起使用的硬编码常量
  3. DM:Base 10 parseXXX必须是数字或调用两个参数parseXXX。