Eclipse下編寫Java程序常用調試技巧10則打賞

編寫程度比較龐大的時候,調試往往是糾錯差錯所必須的步驟,這點之前沒有意識到,最近工作了才發現,當遇到一個龐大的程序出現小小的問題,而又不清楚程序底層的實現,調試則是最好的選擇。

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

在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開始前給大家提3點建議!

a.不要使用System.out.println來調試自己的程序

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

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

下面是10種常用的調試技巧

1.條件斷點

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

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

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

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

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

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

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

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

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

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

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

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

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

F8——移動到下一個斷點處執行。
steps
原文地址:javapapers 編譯地址:張紅月

Eclipse下編寫Java程序常用調試技巧10則
文章《Eclipse下編寫Java程序常用調試技巧10則》二維碼
  • 微信打賞
  • 支付寶打賞

已有23條評論

  1. 無節操圖片

    不錯,值得收藏分享!

    2015-10-01 16:18 回復
  2. 陳玟予

    網站做的好棒哦

    2015-09-21 15:51 回復
  3. 歪妖內涵網

    很好的網站,贊一個,加油!

    2015-09-20 18:35 回復
  4. 最勵志網

    分享一下我的網站,http://www.zuilizhi.net 最勵志網

    2015-08-10 09:24 回復
  5. 車江濤

    實用

    2013-01-07 21:15 回復
  6. 車江濤

    2013-01-07 21:11 回復
  7. 寧波痔瘡

    貌似java.的使用率還是比較普遍的吧,不國學起來也不是很簡單

    2012-09-19 15:48 回復
  8. 電動玩具

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

    2012-09-14 14:53 回復
  9. 淘開心玩具

    如果在當前行有方法調用,那么會直接移動到下一行執行。

    2012-09-14 14:52 回復
  10. 淘開心

    調試期間,可以重新跳到調用堆棧框架的開始處執行,并且變量值也會回到最初。

    2012-09-14 14:52 回復
  11. 小譚

    支持……

    2012-09-13 21:47 回復
  12. 籃球比分

    看不懂

    2012-09-12 13:54 回復
  13. 就是哈哈

    只有更新速度夠快,俺們這些粉絲才能更忠實!

    2012-09-11 16:05 回復
  14. 旅途者

    這是個細活,費心費腦呀……

    2012-09-11 15:02 回復
  15. 藏章博客

    額,一般都是使用斷點調試,但是使用system.out.print來調試也是很不錯的選擇

    2012-09-11 13:10 回復
  16. 游客 453

    很喜歡博主的博客,以后多多交流…我的小站:太原網站建設http://www.jianweiliu.com,歡迎指點

    2012-09-11 10:17 回復
  17. 大貓

    最近也在學習java呢

    2012-09-11 09:35 回復
  18. 老驢

    說來慚愧,在學校時主學的Java,到現在基本上忘完了。。。

    2012-09-10 22:20 回復
  19. 三國塔防魏傳

    確實很龐大的工程,出一點差錯得要搞很久!

    2012-09-10 10:24 回復

(必填)

(必填)

(可選)

黑龙江22选5开奖