2014-01-27 147 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