0

我最近通过 PMD 运行了我的代码。还有这个jsp,有人在其中写了一个try catch块(我知道这是一种不好的做法。)。

代码是这样的

<%
 Thread t = new Thread(runA);
 String tClassName = null;
 tClassName = request.getParameter("classname");
 t.setName(tClassName);
  t.start();
 %>


 <%!
   Runnable runA = new Runnable(){
    public void run(){
      try{
          // some code here   
          }
      catch(Exception e){
         e.printStackTrace();            
          }

          }
         };
    %>

现在 PMD 工具建议不要使用该printStackTrace()方法,因为它可能会导致安全漏洞。

printStackTrace()有人可以建议, 在 catch 块内使用的替代方案。请注意此代码位于 jsp 页面上。

4

1 回答 1

0

如果要记录异常,使用一些日志框架(如Log4j)并使用

log.error("Ops!", e);

好处是日志框架记录到服务器上的正确日志文件。仅e.printStackTrace()写入.System.err

于 2014-01-27T17:27:08.640 回答