我正在使用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规则集?
是否有可用于捕获此的自定义规则集?
答案 0 :(得分:1)
PMD不是正确的工具。您应该使用FindBugs来捕获此类问题。
但是即使使用FindBugs,你也不会抓到任何东西,因为上面的代码是完全合理的,并且没有任何bug,除非你知道getParameter("user")
可以返回null,并且有更好的东西不要在这种情况下抛出NullPointerException。
如果此类代码触发了错误,基本上每行代码调用另一个方法返回的对象上的方法都会触发错误。 FindBugs支持注释,允许声明方法的调用者应始终检查此方法返回的结果是否为null。见http://findbugs.sourceforge.net/manual/annotations.html。但是,当然,对于第三方代码,您不能做任何事情(除了编写自己的规则)。