2

私はを使用して PMD Plug-in 3.2.6.v2009033006 います。ただし、pmdのデフォルトのルールセットは、nullポインタ例外の可能性をキャプチャしません。

Javaコード

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

user.trim();変数がnullの場合、usernullポインター例外が発生する傾向があります。私は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 に答える