- 相關(guān)推薦
Java程序員必知調試技巧匯總
調試可以幫助識別和解決應用程序缺陷,在本文中,將使用大家常用的的開(kāi)發(fā)工具Eclipse來(lái)調試Java應用程序。但這里介紹的調試方法基本都是通用的,也適用于NetBeans IDE,我們會(huì )把重點(diǎn)放在運行時(shí)上面。
在開(kāi)始之前,推薦大家去看看Eclipse shortcuts這篇文章,它將會(huì )給你帶來(lái)很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開(kāi)始前給大家提3點(diǎn)建議!
1.不要使用System.out.println作為調試工具
2.把所有涉及到的組件日志級別激活并使用
3.使用日志分析器來(lái)讀取日志
0.條件斷點(diǎn)
如果你不知道如何添加斷點(diǎn),只需點(diǎn)擊左邊面板(行號前面)斷點(diǎn)即被創(chuàng )建。在調試界面中,“斷點(diǎn)”視圖會(huì )把所有被創(chuàng )建的斷點(diǎn)列出來(lái)。我們可以給它加一個(gè)布爾條件,也就是說(shuō),該斷點(diǎn)會(huì )被激活并且如果布爾條件為真,就會(huì )執行該斷點(diǎn),否則將會(huì )跳過(guò)往下執行。
1.異常斷點(diǎn)
在斷點(diǎn)視圖中,有一個(gè)J!標記按鈕!我們可以使用該按鈕來(lái)添加一個(gè)Java異常斷點(diǎn)。例如,我們想讓程序在遇到空指針異常(NullPointerException)時(shí),仍然能繼續調試,那么我們可以使用該按鈕來(lái)添加一個(gè)異常斷點(diǎn)!
2.監視點(diǎn)
這是一個(gè)非常好的功能,當選定的屬性訪(fǎng)問(wèn)或修改程序時(shí),程序會(huì )停止執行并允許進(jìn)行調試。在Outline視圖中選擇一個(gè)類(lèi)變量并從上下文菜單中選擇切換監視點(diǎn),屬性監視點(diǎn)將會(huì )被創(chuàng )建,在斷點(diǎn)(Breakpoints)視圖中會(huì )把所有監視點(diǎn)用列表的形式顯示出來(lái)。
3.評估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來(lái)顯示選定變量或者表達式的值。我們也可以給一個(gè)變量或表達式添加永久觀(guān)察點(diǎn),當程序在調試時(shí),這些觀(guān)察點(diǎn)就會(huì )在表達式視圖(Expression view)中顯示出來(lái)。
4.修改變量值
在調試過(guò)程中,我們可以修改變量值。先選好一個(gè)變量然后進(jìn)入變量視圖(Variables view),根據變量類(lèi)型在其對應的Value列里輸入值即可。
5.在Main函數里面停止執行
在運行/調試設置中,編輯配置對話(huà)框中有“Main”這個(gè)選項卡,我們可以勾選“Stop in main”這個(gè)復選框。如果選中,那么在調試一個(gè)基于main方法的Java程序時(shí),程序會(huì )在main方法第一行位置便停止執行。
6.環(huán)境變量
并不是在系統屬性中添加環(huán)境變量,我們可以在編輯配置對話(huà)框中很方便地進(jìn)行添加。
7.Drop to Frame
這也是我最喜歡的一個(gè)功能。調試期間,可以重新跳到調用堆?蚣艿拈_(kāi)始處執行,并且變量值也會(huì )回到最初。根據回檔調整堆棧的深度,這個(gè)功能的主要用途是所有變量狀態(tài)可以快速回到方法開(kāi)始執行時(shí)候的樣子,然后你可以重新進(jìn)行一遍一遍執行,這樣就可以在你關(guān)注的地方進(jìn)行多次調試,但是在執行過(guò)程中也會(huì )產(chǎn)生一些副作用,比如插入到數據庫里面的數據是無(wú)法刪除的!
8.分布過(guò)濾
當我們進(jìn)入(F5)方法的時(shí)候,我們還可以訪(fǎng)問(wèn)其外部庫(比如java.*),我們可能不需要這個(gè)庫,就可以在Perference選項卡頁(yè)面添加一個(gè)過(guò)濾器來(lái)排除這個(gè)包。
9.進(jìn)入、跳出和返回
我把這個(gè)放在最后一點(diǎn),在調試過(guò)程中,這些是必須要了解(最好掌握)的東西:
F5——進(jìn)入:移動(dòng)到下一個(gè)步驟,如果當前行有一個(gè)方法調用,該控件將會(huì )跳轉到被調用方法的第一行執行。
F6——跳出:移動(dòng)到下一行。如果在當前行有方法調用,那么會(huì )直接移動(dòng)到下一行執行。不會(huì )進(jìn)入被調用方法體里面。
F7——返回:從當前方法中跳出,繼續往下執行。
F8——移動(dòng)到下一個(gè)斷點(diǎn)處執行。
【Java程序員必知調試技巧】相關(guān)文章:
必知的魚(yú)的烹飪技巧03-20
象棋開(kāi)局必知技巧03-12
網(wǎng)球比賽必知技巧03-28
音響師必知的知識技巧03-04
廚師必知的海鮮烹飪技巧03-07
編導考生必知的影評技巧03-12
銷(xiāo)售必知的20種口才與技巧03-09