11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常

11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常

ID:44439834

大?。?84.00 KB

頁數(shù):25頁

時(shí)間:2019-10-22

11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常_第1頁
11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常_第2頁
11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常_第3頁
11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常_第4頁
11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異常_第5頁
資源描述:

《11+程序出錯(cuò)了怎么辦?—調(diào)試、錯(cuò)誤處理與異?!酚蓵T上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、第11章程序出錯(cuò)了怎么辦?——調(diào)試、錯(cuò)誤處理與異常程序設(shè)計(jì)不可能是一帆風(fēng)順的,其間總會發(fā)生各種各樣的問題。例如,可能有鍵盤輸入錯(cuò)誤,也可能有程序的語法錯(cuò)誤或者編寫的程序有邏輯錯(cuò)誤等。此時(shí)就需要對程序進(jìn)行調(diào)試,以期找出問題并改正。VB.NET2008的調(diào)試器是構(gòu)建在開發(fā)環(huán)境中的,提供簡單、靈活的調(diào)試功能。除此之外,在程序運(yùn)行期間也可能發(fā)生這樣或者那樣的錯(cuò)誤,這稱為運(yùn)行時(shí)錯(cuò)誤。出現(xiàn)運(yùn)行時(shí)錯(cuò)誤時(shí),程序會發(fā)出異常,以便通過在程序內(nèi)查找用于處理錯(cuò)誤的代碼來處理錯(cuò)誤。如果未找到這樣的代碼,程序?qū)⑼V共⑿枰匦聠?dòng)。由于上述情況可能導(dǎo)致數(shù)據(jù)丟失,最好在可能預(yù)見錯(cuò)誤發(fā)生的任何地方均創(chuàng)建錯(cuò)誤

2、處理代碼,這稱為異常處理。章節(jié)內(nèi)容11.1編程中的錯(cuò)誤11.2調(diào)試11.3異常處理11.1編程中的錯(cuò)誤編譯錯(cuò)誤編譯錯(cuò)誤也稱為編譯器錯(cuò)誤或者語法錯(cuò)誤,是指妨礙程序運(yùn)行的錯(cuò)誤。運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤是指在程序運(yùn)行時(shí)發(fā)生的錯(cuò)誤。這些錯(cuò)誤通常是在程序試圖執(zhí)行不可能執(zhí)行的操作時(shí)發(fā)生。邏輯錯(cuò)誤邏輯錯(cuò)誤是指妨礙程序執(zhí)行您希望它執(zhí)行的操作的錯(cuò)誤。代碼在編譯和運(yùn)行時(shí)可能都沒有錯(cuò)誤,但某個(gè)操作的結(jié)果卻可能不是您期望的結(jié)果。11.2調(diào)試查找并修復(fù)錯(cuò)誤的過程稱為調(diào)試。調(diào)試是我們在編程時(shí)查找錯(cuò)誤并修正錯(cuò)誤的最好方式。VB.NET2008提供很多調(diào)試程序的方法,包括控制程序的執(zhí)行流程、設(shè)置斷點(diǎn)、查看運(yùn)行

3、時(shí)變量值等。11.2.1控制執(zhí)行調(diào)試程序時(shí)常需要控制程序的執(zhí)行流程,包括開始執(zhí)行、中斷執(zhí)行、結(jié)束執(zhí)行、單步執(zhí)行、執(zhí)行到指定位置等。除此之外,還可以讓代碼執(zhí)行到指定光標(biāo)處,方法是在希望執(zhí)行到的代碼處右擊,在打開的右鍵菜單中單擊【運(yùn)行到光標(biāo)處】。11.2.2斷點(diǎn)在調(diào)試一大段程序時(shí),可能會想讓代碼運(yùn)行到某一處,然后停下來檢查是否是你所預(yù)期的結(jié)果,這時(shí)就要使用斷點(diǎn)了。發(fā)生中斷時(shí),則稱程序和調(diào)試器處于中斷模式??梢宰尨a在任何定義斷點(diǎn)的地方停止,并且可以在任何地方設(shè)置斷點(diǎn)。注意,在設(shè)置斷點(diǎn)的那行之前就會停止代碼的執(zhí)行。斷點(diǎn)設(shè)置設(shè)置斷點(diǎn)很容易,通過單擊代碼行旁邊的灰邊上的想要設(shè)置斷點(diǎn)的

4、位置,就可以在設(shè)計(jì)時(shí)或運(yùn)行時(shí)的代碼中進(jìn)行設(shè)置了。斷點(diǎn)是一個(gè)紅色的圓點(diǎn)。此時(shí),可以逐步向下執(zhí)行代碼或者運(yùn)行到指定的光標(biāo)位置,同時(shí)在執(zhí)行的過程中查看某些關(guān)鍵變量的值來查找代碼的邏輯問題。查看變量的值最簡單的方法就是將鼠標(biāo)放在這個(gè)變量上,就會在打開的DataTips窗口中查看當(dāng)前變量的值。11.2.3即時(shí)窗口當(dāng)我們通過斷點(diǎn)和單步執(zhí)行,發(fā)現(xiàn)某些代碼可能存在問題,而要試圖修改時(shí),可能并沒有很明確的方法來修復(fù)錯(cuò)誤,而是需要多次嘗試。這時(shí)我們希望可以在不改變實(shí)際代碼的情況下測試可能的修復(fù)以及代碼修改后帶來的結(jié)果,即時(shí)窗口可以幫助我們完成這樣的功能。在中斷模式下,即時(shí)窗口可以用于查看變量或

5、者表達(dá)式的值或者運(yùn)行代碼段。例如,在中斷模式下查看變量k的值,可以在即時(shí)窗口輸入以下代碼。Debug.Print(k)或者?k二者均返回變量k當(dāng)前的值。并且,即時(shí)窗口也支持智能感知。即時(shí)窗口最有用的地方在于,它可以在設(shè)計(jì)階段執(zhí)行代碼,并得到代碼的執(zhí)行結(jié)果。特別在試圖修改代碼時(shí),可以直接在即時(shí)窗口運(yùn)行修改后的代碼,以查看結(jié)果是否正確。11.2.4可視化工具可視化工具用于創(chuàng)建窗口或其他界面,以一種適合于變量或?qū)ο蟮臄?shù)據(jù)類型的有意義的方式來顯示變量或?qū)ο?。文本可視化工具HTML可視化工具XML可視化工具數(shù)據(jù)集可視化工具均用于字符串對象用于DataSet、DataView和Data

6、Table對象11.3異常處理11.3.1異常的概念在VisualBasic.NET中,錯(cuò)誤機(jī)制是基于異常這個(gè)概念的。異??杀粧伋鲆砸l(fā)錯(cuò)誤,并且在處理錯(cuò)誤時(shí)可捕捉異常。如果沒有提供任何類型的錯(cuò)誤處理,當(dāng)錯(cuò)誤發(fā)生時(shí),用戶會接受到關(guān)于這個(gè)未處理的異常的消息,這個(gè)消息是由CLR提供的,并不是用戶友好的,用戶很難理解。11.3.2結(jié)構(gòu)化異常處理結(jié)構(gòu)化異常處理是用Try...Catch...Finally...EndTry語句實(shí)現(xiàn)的。Try'能夠引發(fā)一個(gè)異常的代碼Catch'處理異常的代碼Finally'實(shí)現(xiàn)清理工作的代碼(如關(guān)閉數(shù)據(jù)庫連接等)EndTryTry和EndTry語句都

7、是必需的。Catch和Finally語句可以共同使用于一個(gè)Try塊中,但是必需至少使用其中之一。通常將可能導(dǎo)致異常的代碼放在Try塊中。如果這段代碼在執(zhí)行過程中產(chǎn)生異常,則轉(zhuǎn)到Catch塊中對該異常進(jìn)行相應(yīng)處理。最后,無論是否引發(fā)異常,F(xiàn)inally塊中的代碼最后一定會被執(zhí)行。也可以這樣理解:Try塊中放置正常的程序代碼,Catch塊中放置異常處理代碼,而Finally塊中放置一些無論是否發(fā)生異常都必須執(zhí)行的代碼,如釋放資源、設(shè)置相關(guān)屬性等善后工作。例子:除法計(jì)算器考慮到用戶的輸入,有可能存在以下兩種情況。一是用戶

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。