成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java程序調試技巧淺析

開發(fā) 后端
本文向您介紹Java程序調試的一些技巧,包括Boolean量和斷言語句的使用等,希望對您有所幫助。

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

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

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

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

  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程序調試標志,但是這樣不夠靈活,比如你不能指定哪一部分使用調試功能,而只是要使用調試功能就必須在代碼的全部使用,這樣就引出了第三種調試方法,可以定義一個用于調試的類。

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

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

要打開Test的調試功能,只需:

java -DTest.Debug=true Test

當然這個類可以進行進一步擴展,比如將其變?yōu)槿罩竟芾恚刂普{試信息的輸出位置等

三、使用斷言

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

Exception,而是拋出AssertionError,

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

     (1)assert booleanExpression;

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

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

2,在Java程序調試中啟用斷言:

編譯:javac -source 1.4 AssertTest.java

運行:java -ea AssertTest (參數)

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

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

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

 

【編輯推薦】

  1. 關于Java反射機制的一個實例
  2. 在Java應用程序中使用Jfreechart配置
  3. 淺談為什么Java接口中不允許定義變量
  4. Java的異常和斷言學習筆記
  5. 關于Java繼承的一些復習
責任編輯:佚名 來源: 網絡轉載
相關推薦

2022-12-25 18:03:13

Debug原理軟件

2013-04-10 09:46:29

EclipseJava

2009-07-29 10:52:09

數據采集程序ASP.NET技巧

2013-06-03 11:24:45

程序調試Java

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2021-02-20 11:04:40

C++VS代碼調試

2009-10-14 14:37:56

調試.NET程序

2021-08-26 05:04:53

JavaScript調試技巧

2009-07-29 11:33:14

ASP.NET技巧ASP.NET應用程序

2009-12-11 10:59:48

PHP函數extrac

2009-09-18 14:09:57

SQL CLR存儲過程

2019-06-14 14:15:07

Javascript調試技巧代碼

2013-05-17 10:54:37

iOS開發(fā)iOS SDK調試技巧

2013-04-18 10:19:40

iOS開發(fā)Xcode調試

2009-07-15 09:29:24

Java程序員

2009-07-29 13:42:25

ASP.NET注釋

2017-03-07 13:52:38

程序員調試片斷

2009-12-11 18:12:34

PHP創(chuàng)建ZIP檔案文

2009-10-13 11:19:55

對等網布線技巧

2018-03-12 10:15:10

前端Javascript反調試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲a毛片 | 国产激情一区二区三区 | 免费看片国产 | 手机看片在线播放 | 另类专区成人 | 亚洲精品日韩综合观看成人91 | 麻豆精品国产91久久久久久 | 日韩精品免费在线观看 | 一级少妇女片 | 日韩午夜一区二区三区 | 日韩字幕| 另类视频区| 亚洲精品大片 | 精品国产一区久久 | 丁香色婷婷 | 99精品视频网 | 国产精品免费看 | 午夜影院视频 | 91中文字幕在线观看 | 亚洲国产成人精品一区二区 | 久久精品色视频 | 亚洲人成人一区二区在线观看 | 亚洲国产精品一区二区久久 | 婷婷色国产偷v国产偷v小说 | 九九精品久久久 | 91精品国产一区二区三区蜜臀 | a视频在线| 亚洲v日韩v综合v精品v | 亚洲精品99 | 久久久久国产精品午夜一区 | av在线成人 | 91精品国产乱码久久久久久久久 | 欧美网站一区二区 | 9999国产精品欧美久久久久久 | 四季久久免费一区二区三区四区 | 亚洲男人的天堂网站 | 国产精品国产成人国产三级 | 国产伦精品一区二区三毛 | 久久精品免费观看 | 国产精品久久久久久久免费大片 | 99精品国产成人一区二区 |