日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java程序調(diào)試技巧淺析

用Java這么久,說來慚愧,大部分情況下使用的調(diào)試語句是:System.out.println("value:"+value);這種形式,這兩天看了些關(guān)于Java程序調(diào)試技巧的東西,總結(jié)一下,以后要積極使用:

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供單縣企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、H5建站、小程序制作等業(yè)務。10年已為單縣眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。

一:一種很簡單的方法就是使用一個boolean量如:debugMode,需要看看程序的輸出時可以使用:if(debugMode)System.out.println("..");

在項目完畢后把debugMode變量設(shè)為false;這種方法的不足是:為了啟動或者禁止debug,必須改動代碼

二:一個比上述方法稍好的是:使用Java -D:如:Java -Ddebug=true MyClass,在使用這種方法時,必須在你所有的class中添加System.getProperty("debug")來取得調(diào)試標志,這樣***種方法的使用,就改為:

 
 
 
  1. public static final boolean debug;
  2.    static{
  3.       String sDebug=System.getProperty("debug");
  4.       if(sDebug!=null && sDebug.equalsIngnoreCase("true"))
  5.          debug=true;
  6.       else
  7.          debug = false;
  8.    }

這樣在不更改source code的情況下可以直接修改Java程序調(diào)試標志,但是這樣不夠靈活,比如你不能指定哪一部分使用調(diào)試功能,而只是要使用調(diào)試功能就必須在代碼的全部使用,這樣就引出了第三種調(diào)試方法,可以定義一個用于調(diào)試的類。

 
 
 
  1.   public class DebugManager {
  2.  public static final String SYSTEM_DEBUG_KEY="system.Debug";
  3.  public static final boolean debug;
  4.  static {
  5.      debug = toBoolean(SYSTEM_DEBUG_KEY);
  6.  }
  7.  private static boolean toBoolean(String key){
  8.   boolean debug;
  9.   String sDebug = System.getProperty(key);
  10.   if(sDebug != null && sDebug.equalsIgnoreCase("true"))
  11.    debug = true;
  12.   else
  13.    debug =false;
  14.   return debug;
  15.  }
  16.  
  17.  public static boolean getSystemDebug(){
  18.   return debug;
  19.  }
  20.  public static boolean getSystemDebug(String applicationKey) {
  21.   if(debug || toBoolean(applicationKey))
  22.    return true;
  23.   else
  24.    return false;
  25.  }
  26. }

這樣對于一個application(Test)可以著牙功能調(diào)用:
   boolean debug =DebugManager.getSystemDebug(applicationKey);

要打開Test的調(diào)試功能,只需:

java -DTest.Debug=true Test

當然這個類可以進行進一步擴展,比如將其變?yōu)槿罩竟芾?,控制調(diào)試信息的輸出位置等

三、使用斷言

斷言是Merlin(jdk1.4)中一項新功能,默認情況下不使用斷言,但是programmer可以在任何時候enable或者disable這項功能,從而可以在測試時啟用斷言驗證,而在部署時禁用斷言驗證,而程序運行時若用戶碰到問題時再重新啟用斷言。斷言檢查,失敗時不會拋出

Exception,而是拋出AssertionError,

1,斷言的兩種語法形式:

     (1)assert booleanExpression;

      (2) assert boolExpression:message; //message將作為錯誤拋出后的結(jié)果顯示

assert必須位AssertTest于可執(zhí)行快中,不能將assert和實例的類變量一起使用,但可以將其放在任何方法內(nèi)。

2,在Java程序調(diào)試中啟用斷言:

編譯:javac -source 1.4 AssertTest.java

運行:java -ea AssertTest (參數(shù))

-ea是啟用斷言的簡易方法,但是-ea不能用于系統(tǒng)類,

(1)若要對系統(tǒng)類使用斷言:則需:-enablesystemassertions,或者-esa

(2)若要對這個package啟用斷言:要在-ea后加(:,package的名字,...)如對test.util包及其所有的子包啟用斷言,則可以java -ea:test.util... AssertTest


網(wǎng)站標題:Java程序調(diào)試技巧淺析
文章來源:http://www.5511xx.com/article/cdphgje.html