2014-01-27 120 views
0

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

的代码是这样的

<% 
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页面上。

+1

JSP中的Java代码?不建议。 –

+0

这不是一个好主意的尝试抓住,它是有脚本的。 –

回答

0

如果你想记录的例外,它是更适当用一些日志框架(如Log4j的),并使用

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

的好处是日志框架日志服务器上的一个正确的日志文件。 e.printStackTrace()只写入System.err