




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì) C#第七章 調(diào)試和錯(cuò)誤處理 洪中 錯(cuò)誤的不可避免性No matter how good a programmer is, there will always be problems that slip through, and part of being a good programmer is realizing that this is the case and being prepared to deal with it. 主要內(nèi)容錯(cuò)誤類型 VS中的調(diào)試方法非中斷模式下的調(diào)試中斷模式下的調(diào)試C#中可用的異常處理技術(shù)錯(cuò)誤類型非致命錯(cuò)誤(如:Spelling mistake
2、 )致命錯(cuò)誤: (Fatal errors)語(yǔ)法錯(cuò)誤; (Syntax errors)運(yùn)行時(shí)錯(cuò)誤; (Runtime errors)邏輯錯(cuò)誤。 (Logic errors)錯(cuò)誤的發(fā)現(xiàn):易難非中斷模式下的調(diào)試通過(guò)控制臺(tái)輸出調(diào)試信息通過(guò)Output窗口輸出調(diào)試信息通過(guò)外部的文本文件(或系統(tǒng)日志)輸出調(diào)試信息使用VS IDE中提供的跟蹤點(diǎn)進(jìn)行非中斷模式下的調(diào)試信息輸出通過(guò)控制臺(tái)輸出調(diào)試信息通過(guò)Console.WriteLine()函數(shù)向控制臺(tái)輸出調(diào)試信息。通過(guò)Output窗口輸出調(diào)試信息在運(yùn)行期間將調(diào)試信息寫入Output窗口的Debug視圖的兩種方法:(位于 System.Diagnostics
3、命名空間下)Debug.WriteLine() Debug.Write() Trace.WriteLine() Trace.Write()兩者的異同點(diǎn)及與Console.WriteLine()在用法上的不同。Debug與Trace的異同Debug類或Trace類都屬于System.Diagnostics類庫(kù),用于將運(yùn)行時(shí)消息寫到“輸出”窗口。如果只在程序的調(diào)試版本中輸出,則使用 Debug 類。如果要同時(shí)在調(diào)試版本和發(fā)布版本中輸出,則使用 Trace 類。向Output窗口輸出信息除了應(yīng)用程序的程序輸出外,“輸出”窗口還可以顯示下列信息: 調(diào)試器已經(jīng)加載或卸載的模塊。引發(fā)的異常。退出的進(jìn)程。退
4、出的線程。有條件輸出Debug.WriteIf() Trace.WriteIf()Debug.WriteLineIf() Trace.WriteLineIf()VS IDE中的跟蹤點(diǎn)輸出調(diào)試信息而不必修改代碼的一種方式。VS IDE中的跟蹤點(diǎn)從現(xiàn)有斷點(diǎn)創(chuàng)建跟蹤點(diǎn)診斷輸出與跟蹤點(diǎn)的優(yōu)缺點(diǎn)中斷模式下的調(diào)試暫停應(yīng)用程序以進(jìn)入中斷模式程序執(zhí)行到斷點(diǎn)時(shí)自動(dòng)進(jìn)入中斷模式(僅用于Debug模式)斷點(diǎn)的配置當(dāng)程序執(zhí)行到斷點(diǎn)所在語(yǔ)句時(shí):立即進(jìn)入中斷模式(缺?。?;當(dāng)布爾表達(dá)式的值為true時(shí),進(jìn)入中斷模式;當(dāng)遇到某斷點(diǎn)的次數(shù)達(dá)到某個(gè)預(yù)定值時(shí),進(jìn)入中斷模式;當(dāng)從上次遇到斷點(diǎn)以來(lái)某個(gè)變量或表達(dá)式的值發(fā)生了更改時(shí),進(jìn)入
5、中斷模式;輸出文本到Output窗口或執(zhí)行一個(gè)宏。(跟蹤點(diǎn))斷點(diǎn)的使用斷點(diǎn)的添加;斷點(diǎn)的刪除與禁用;斷點(diǎn)的屬性:進(jìn)入中斷模式的其他方式使用斷言產(chǎn)生(拋出)一個(gè)異常使用斷言斷言(或 Assert 語(yǔ)句)測(cè)試您作為 Assert 語(yǔ)句的參數(shù)指定的條件。如果此條件計(jì)算為 true,不發(fā)生操作。如果此條件計(jì)算為 false,則斷言失敗。如果正在調(diào)試版本中運(yùn)行,則程序進(jìn)入中斷模式。Debug.Assert 和 Trace.Assert 方法進(jìn)入中斷模式后的可用工具監(jiān)視變量的內(nèi)容單步執(zhí)行代碼立即與命令窗口調(diào)用堆棧窗口監(jiān)視變量的內(nèi)容AutosLocalsWatch NQuick Watch也可用于在中斷模式
6、下修改變量的值監(jiān)視變量的內(nèi)容“自動(dòng)”窗口顯示在當(dāng)前代碼行和上一代碼行中使用的變量?!熬植孔兞俊贝翱陲@示對(duì)于當(dāng)前上下文或范圍來(lái)說(shuō)位于本地的變量。通常,這是當(dāng)前正在執(zhí)行的過(guò)程或函數(shù)。在“監(jiān)視”窗口中可以添加要監(jiān)視其值的變量。此外,還可以添加調(diào)試器所能識(shí)別的任何有效表達(dá)式?!翱焖俦O(jiān)視”對(duì)話框在概念上類似于“監(jiān)視”窗口,但是“快速監(jiān)視”每次只能顯示一個(gè)變量或表達(dá)式。 單步執(zhí)行代碼Step Into:執(zhí)行并移動(dòng)到下一個(gè)要執(zhí)行的語(yǔ)句上;Step Over:同上,但不進(jìn)入嵌套的代碼塊,包括函數(shù);Step Out:執(zhí)行到代碼塊的末尾,在執(zhí)行完該語(yǔ)句塊后,重新進(jìn)入中斷模式。立即和命令窗口通過(guò)Command窗口可
7、以手動(dòng)執(zhí)行VS操作通過(guò)Immediate窗口可以執(zhí)行源代碼調(diào)用堆棧窗口實(shí)際上是一個(gè)嵌套的函數(shù)調(diào)用列表,顯示了當(dāng)前函數(shù)、調(diào)用它的函數(shù)、以及調(diào)用函數(shù)的函數(shù),調(diào)用的位置也被記錄下來(lái)。異常處理異常:代碼運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤。在異常發(fā)生并且未被處理時(shí),應(yīng)用程序會(huì)中斷執(zhí)行,并顯示異常相關(guān)的信息。例:System.IndexOutOfRangeException以File.Open 方法為例,可能拋出以下異常: 異常處理結(jié)構(gòu) try . catch ( e) . finally . 異常處理結(jié)構(gòu)try-catch 語(yǔ)句由一個(gè) try 塊后跟一個(gè)或多個(gè) catch 子句構(gòu)成,這些子句指定不同的異常處理程序。其中:
8、try 塊包含可能導(dǎo)致異常的保護(hù)代碼。該塊一直執(zhí)行到引發(fā)異?;虺晒ν瓿蔀橹埂atch 子句使用時(shí)可以不帶任何參數(shù),這種情況下它捕獲任何類型的異常,并被稱為一般 catch 子句。它還可以接受從 System.Exception 派生的對(duì)象參數(shù),這種情況下它處理特定的異常。異常處理結(jié)構(gòu)在同一個(gè) try-catch 語(yǔ)句中可以使用一個(gè)以上的特定 catch 子句。這種情況下 catch 子句的順序很重要,因?yàn)闀?huì)按順序檢查 catch 子句。將先捕獲特定程度較高的異常,而不是特定程度較小的異常。在 catch 塊中可以使用 throw 語(yǔ)句再次引發(fā)已由 catch 語(yǔ)句捕獲的異常。 如果要再次引發(fā)當(dāng)前由無(wú)參數(shù)的 catch 子句處理的異常,則使用不帶參數(shù)的 throw 語(yǔ)句。 異常處理結(jié)構(gòu)finally 塊用于清除 try 塊中分配的任何資源,以及運(yùn)行任何即使在發(fā)生異常時(shí)也必須執(zhí)行的代碼??刂瓶偸莻鬟f給 finally 塊,與 try 塊的退出方式無(wú)關(guān)。The trycatch StatementThe catch ClauseThe catch ClauseThe finally BlockF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030裝修設(shè)計(jì)項(xiàng)目發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 麝香保心丸市場(chǎng)分析及投資戰(zhàn)略研究預(yù)測(cè)可行性報(bào)告
- 2025至2030中國(guó)立式切割機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)秘魯香脂精油行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)眼鏡中的3D打印機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)真石膠地板行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展趨勢(shì)與投資報(bào)告
- 2025至2030中國(guó)盒裝面巾紙行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)男女羽絨服行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景與投融資戰(zhàn)略報(bào)告
- 2025至2030中國(guó)電動(dòng)食品吸煙機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)電子稱重機(jī)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及商業(yè)模式與投資發(fā)展報(bào)告
- 2023年江西新余市數(shù)字產(chǎn)業(yè)投資發(fā)展有限公司招聘筆試題庫(kù)含答案解析
- LY/T 3323-2022草原生態(tài)修復(fù)技術(shù)規(guī)程
- 部編版六年級(jí)語(yǔ)文下冊(cè)課件第1課《北京的春節(jié)》《臘八粥》
- 涂裝工模擬練習(xí)題含答案
- 2023-2024學(xué)年河南省永城市小學(xué)數(shù)學(xué)二年級(jí)下冊(cè)期末評(píng)估測(cè)試題
- 乳腺疾病的超聲診斷 (超聲科)
- 服務(wù)精神:馬里奧特之路
- 《建筑施工安全檢查標(biāo)準(zhǔn)》JGJ59-2011圖解
- 華為大學(xué)人才培養(yǎng)與發(fā)展實(shí)踐
- 醫(yī)療垃圾廢物處理課件
- 公路工程基本建設(shè)項(xiàng)目概算、預(yù)算編制辦法
評(píng)論
0/150
提交評(píng)論