2

我正在使用 PMD Plug-in 3.2.6.v2009033006 . 但是 pmd 中的默认规则集没有捕获可能的空指针异常。

Java 代码

public class SignUp extends HttpServlet{
     public void doGet(HttpServletRequest req , HttpServletResponse res){
        String user = req.getParameter("user");
        user.trim(); 
     }
}

user.trim();如果user变量为 null 则容易出现空指针异常。我用 pmd 检查了我的代码,但它不会表明这一点?我怎样才能捕捉到这个?. 是否有任何自定义 pmd 规则集可用?

是否有任何自定义规则集可用于捕获此内容?

4

1 回答 1

1

PMD 不是解决此问题的正确工具。您应该使用 FindBugs 来捕获此类问题。

但是即使使用 FindBugs,你也不会捕获任何东西,因为上面的代码是完全合理的,并且没有任何错误,除非你知道它getParameter("user")可以返回 null,并且在这种情况下有比抛出 NullPointerException 更好的方法.

如果这样的代码触发了错误,那么基本上每一行调用另一个方法返回的对象上的方法的代码都会触发错误。FindBugs 支持注释,允许声明方法的调用者应始终检查此方法返回的结果是否为 null。请参阅http://findbugs.sourceforge.net/manual/annotations.html。但是当然,对于第三方代码,你什么也做不了(除了自己写规则)。

于 2012-10-17T19:35:55.297 回答