對(duì)于程序員來(lái)說(shuō),要知道的10個(gè)調(diào)試技巧,你清楚幾個(gè)
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、南寧ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的南寧網(wǎng)站制作公司**前言:
調(diào)試不僅可以查找到應(yīng)用程序缺陷所在,還可以解決缺陷。對(duì)于Java程序員來(lái)說(shuō),他們不僅要學(xué)會(huì)如何在Eclipse里面開(kāi)發(fā)像樣的程序,更需要學(xué)會(huì)如何調(diào)試程序。本文介紹了Java程序員必知的10個(gè)調(diào)試技巧,保證讓你受益匪淺!**
調(diào)試可以幫助識(shí)別和解決應(yīng)用程序缺陷,在本文中,作者將使用大家常用的的開(kāi)發(fā)工具Eclipse來(lái)調(diào)試Java應(yīng)用程序。但這里介紹的調(diào)試方法基本都是通用的,也適用于NetBeans IDE,我們會(huì)把重點(diǎn)放在運(yùn)行時(shí)上面。
在開(kāi)始之前,推薦大家去看看Eclipse shortcuts這篇文章,它將會(huì)給你帶來(lái)很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開(kāi)始前給大家提3點(diǎn)建議!
不要使用System.out.println作為調(diào)試工具
把所有涉及到的組件日志級(jí)別激活并使用
使用日志分析器來(lái)讀取日志
1.條件斷點(diǎn)
如果你不知道如何添加斷點(diǎn),只需點(diǎn)擊左邊面板(行號(hào)前面)斷點(diǎn)即被創(chuàng)建。在調(diào)試界面中,“斷點(diǎn)”視圖會(huì)把所有被創(chuàng)建的斷點(diǎn)列出來(lái)。我們可以給它加一個(gè)布爾條件,也就是說(shuō),該斷點(diǎn)會(huì)被激活并且如果布爾條件為真,就會(huì)執(zhí)行該斷點(diǎn),否則將會(huì)跳過(guò)往下執(zhí)行。
2.異常斷點(diǎn)
在斷點(diǎn)視圖中,有一個(gè)J!標(biāo)記按鈕!我們可以使用該按鈕來(lái)添加一個(gè)Java異常斷點(diǎn)。例如,我們想讓程序在遇到空指針異常(NullPointerException)時(shí),仍然能繼續(xù)調(diào)試,那么我們可以使用該按鈕來(lái)添加一個(gè)異常斷點(diǎn)!
3.監(jiān)視點(diǎn)
這是一個(gè)非常好的功能,當(dāng)選定的屬性訪問(wèn)或修改程序時(shí),程序會(huì)停止執(zhí)行并允許進(jìn)行調(diào)試。在Outline視圖中選擇一個(gè)類變量并從上下文菜單中選擇切換監(jiān)視點(diǎn),屬性監(jiān)視點(diǎn)將會(huì)被創(chuàng)建,在斷點(diǎn)(Breakpoints)視圖中會(huì)把所有監(jiān)視點(diǎn)用列表的形式顯示出來(lái)。
4.評(píng)估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來(lái)顯示選定變量或者表達(dá)式的值。我們也可以給一個(gè)變量或表達(dá)式添加永久觀察點(diǎn),當(dāng)程序在調(diào)試時(shí),這些觀察點(diǎn)就會(huì)在表達(dá)式視圖(Expression view)中顯示出來(lái)。
5.修改變量值
在調(diào)試過(guò)程中,我們可以修改變量值。先選好一個(gè)變量然后進(jìn)入變量視圖(Variables view),根據(jù)變量類型在其對(duì)應(yīng)的Value列里輸入值即可。
6.在Main函數(shù)里面停止執(zhí)行
在運(yùn)行/調(diào)試設(shè)置中,編輯配置對(duì)話框中有“Main”這個(gè)選項(xiàng)卡,我們可以勾選“Stop in main”這個(gè)復(fù)選框。如果你真的想學(xué)習(xí)java你可以來(lái)這個(gè)群前面是五二七,中間是四一三后面是一四四,這里有技術(shù)大牛親自指導(dǎo)幫助你 還有免費(fèi)的直播課程學(xué)習(xí),如果選中,那么在調(diào)試一個(gè)基于main方法的Java程序時(shí),程序會(huì)在main方法第一行位置便停止執(zhí)行。
7.環(huán)境變量
并不是在系統(tǒng)屬性中添加環(huán)境變量,我們可以在編輯配置對(duì)話框中很方便地進(jìn)行添加。
8.Drop to Frame
這也是我最喜歡的一個(gè)功能。調(diào)試期間,可以重新跳到調(diào)用堆??蚣艿拈_(kāi)始處執(zhí)行,并且變量值也會(huì)回到最初。根據(jù)回檔調(diào)整堆棧的深度,這個(gè)功能的主要用途是所有變量狀態(tài)可以快速回到方法開(kāi)始執(zhí)行時(shí)候的樣子,然后你可以重新進(jìn)行一遍一遍執(zhí)行,這樣就可以在你關(guān)注的地方進(jìn)行多次調(diào)試,但是在執(zhí)行過(guò)程中也會(huì)產(chǎn)生一些副作用,比如插入到數(shù)據(jù)庫(kù)里面的數(shù)據(jù)是無(wú)法刪除的!
9.分布過(guò)濾
當(dāng)我們進(jìn)入(F5)方法的時(shí)候,我們還可以訪問(wèn)其外部庫(kù)(比如java.*),我們可能不需要這個(gè)庫(kù),就可以在Perference選項(xiàng)卡頁(yè)面添加一個(gè)過(guò)濾器來(lái)排除這個(gè)包。
10.進(jìn)入、跳出和返回
我把這個(gè)放在最后一點(diǎn),在調(diào)試過(guò)程中,這些是必須要了解(最好掌握)的東西:
F5——進(jìn)入:移動(dòng)到下一個(gè)步驟,如果當(dāng)前行有一個(gè)方法調(diào)用,該控件將會(huì)跳轉(zhuǎn)到被調(diào)用方法的第一行執(zhí)行。
F6——跳出:移動(dòng)到下一行。如果在當(dāng)前行有方法調(diào)用,那么會(huì)直接移動(dòng)到下一行執(zhí)行。不會(huì)進(jìn)入被調(diào)用方法體里面。
F7——返回:從當(dāng)前方法中跳出,繼續(xù)往下執(zhí)行。
F8——移動(dòng)到下一個(gè)斷點(diǎn)處執(zhí)行。
喜歡這篇文章的話,記得給作者點(diǎn)個(gè)關(guān)注哦,每天都會(huì)更新java有關(guān)的文章
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。
文章標(biāo)題:對(duì)于程序員來(lái)說(shuō),要知道的10個(gè)調(diào)試技巧,你清楚幾個(gè)-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article0/diedoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容