2013-04-26 56 views
3

對於一個noobish問題的道歉。在Java中進行調試 - 設置debugMode標誌

我正在開發一個JavaFX應用程序。

我想設置一個'Global'布爾類型變量'DebugMode',這樣當一個自定義(我的意思是自定義的,或由我自己創建的)異常被拋出時,getMessage()函數可以檢查DebugMode變量以查看如果DebugMode被設置。

如果DebugMode爲'true',那麼該異常可以提供詳細的調試消息,或者只是用戶友好的消息給最終用戶。

它可能在java中,就像PHP中的$ GLOBAL變量一樣嗎?或者有什麼替代方法可以爲開發人員和最終用戶提供兩種不同的異常消息?

回答

5

去-D參數(JVM屬性)。這意味着,當我從命令行啓動應用程序。我可以這樣做,

 java Hello -DdetailedDebugMode=true 

並在Java代碼中,我可以這樣做:

printError(Throwable t) { 
     if(System.getProperties("detailedDebugMode") != null && "true".equalsIgnoreCase(System.getProperties("detailedDebugMode"))) { 
      LOG.error("Here is the message", e); 
     } else { 
      LOG.error("Here is the message only"); 
     } 
    } 
+0

爲了減少開銷,這應該是「緩存」在中央位置的靜態變量中。 – Kai 2013-04-26 06:21:44

+0

您可以解釋@ user714965 – 2013-04-26 06:45:04

+2

地方'公共靜態布爾DEBUG_MODE = System.getProperties(「detailedDebugMode」)!= null &&「true」.equalsIgnoreCase(System.getProperties(「detailedDebugMode」));'某處只做這個調用一旦。然後檢查這個變量而不是使這個查詢可能上百次。 – Kai 2013-04-26 06:47:12