yxhxj2006

          常用鏈接

          統計

          最新評論

          Java程序員應該知道的10個調試技巧

          摘要:調試不僅可以查找到應用程序缺陷所在,還可以解決缺陷。對于Java程序員來說,他們不僅要學會如何在Eclipse里面開發像樣的程序,更需要學會如何調試程序。本文介紹了Java程序員必知的10個調試技巧,保證讓你受益匪淺! 

          調試可以幫助識別和解決應用程序缺陷,在本文中,作者將使用大家常用的的開發工具Eclipse來調試Java應用程序。但這里介紹的調試方法基本都是通用的,也適用于NetBeans IDE,我們會把重點放在運行時上面。 

          在開始之前,推薦大家去看看Eclipse shortcuts這篇文章,它將會給你帶來很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開始前給大家提3點建議! 

          1.不要使用System.out.println作為調試工具 

          2.把所有涉及到的組件日志級別激活并使用 

          3.使用日志分析器來讀取日志 

          0.條件斷點 

          如果你不知道如何添加斷點,只需點擊左邊面板(行號前面)斷點即被創建。在調試界面中,“斷點”視圖會把所有被創建的斷點列出來。我們可以給它加一個布爾條件,也就是說,該斷點會被激活并且如果布爾條件為真,就會執行該斷點,否則將會跳過往下執行。 
           

          1.異常斷點 

          在斷點視圖中,有一個J!標記按鈕!我們可以使用該按鈕來添加一個Java異常斷點。例如,我們想讓程序在遇到空指針異常(NullPointerException)時,仍然能繼續調試,那么我們可以使用該按鈕來添加一個異常斷點! 
           

          2.監視點 

          這是一個非常好的功能,當選定的屬性訪問或修改程序時,程序會停止執行并允許進行調試。在Outline視圖中選擇一個類變量并從上下文菜單中選擇切換監視點,屬性監視點將會被創建,在斷點(Breakpoints)視圖中會把所有監視點用列表的形式顯示出來。 

           

          3.評估/檢查 

          按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值。我們也可以給一個變量或表達式添加永久觀察點,當程序在調試時,這些觀察點就會在表達式視圖(Expression view)中顯示出來。 

           

          4.修改變量值 

          在調試過程中,我們可以修改變量值。先選好一個變量然后進入變量視圖(Variables view),根據變量類型在其對應的Value列里輸入值即可。 

           

          5.在Main函數里面停止執行 

          在運行/調試設置中,編輯配置對話框中有“Main”這個選項卡,我們可以勾選“Stop in main”這個復選框。如果選中,那么在調試一個基于main方法的Java程序時,程序會在main方法第一行位置便停止執行。 

           

          6.環境變量 

          并不是在系統屬性中添加環境變量,我們可以在編輯配置對話框中很方便地進行添加。 

           

          7.Drop to Frame 

          這也是我最喜歡的一個功能。調試期間,可以重新跳到調用堆棧框架的開始處執行,并且變量值也會回到最初。根據回檔調整堆棧的深度,這個功能的主要用途是所有變量狀態可以快速回到方法開始執行時候的樣子,然后你可以重新進行一遍一遍執行,這樣就可以在你關注的地方進行多次調試,但是在執行過程中也會產生一些副作用,比如插入到數據庫里面的數據是無法刪除的! 

           

          8.分布過濾 

          當我們進入(F5)方法的時候,我們還可以訪問其外部庫(比如java.*),我們可能不需要這個庫,就可以在Perference選項卡頁面添加一個過濾器來排除這個包。 

           

          9.進入、跳出和返回 

          我把這個放在最后一點,在調試過程中,這些是必須要了解(最好掌握)的東西: 

          F5——進入:移動到下一個步驟,如果當前行有一個方法調用,該控件將會跳轉到被調用方法的第一行執行。 

          F6——跳出:移動到下一行。如果在當前行有方法調用,那么會直接移動到下一行執行。不會進入被調用方法體里面。 

          F7——返回:從當前方法中跳出,繼續往下執行。 

          F8——移動到下一個斷點處執行。 

           

          posted on 2012-09-20 00:57 奮斗成就男人 閱讀(138) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 彭泽县| 庆城县| 诸暨市| 遂昌县| 长岛县| 云安县| 闸北区| 南召县| 泾源县| 周口市| 邢台市| 介休市| 林州市| 舞阳县| 陆河县| 旬阳县| 洛南县| 昭苏县| 夹江县| 吉隆县| 资兴市| 崇仁县| 武穴市| 济源市| 藁城市| 忻州市| 子洲县| 湖北省| 泽州县| 萨嘎县| 石狮市| 铁岭市| 高陵县| 襄城县| 观塘区| 安岳县| 大港区| 怀仁县| 舞阳县| 达州市| 奇台县|