




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象程序設計 C#第七章 調試和錯誤處理 洪中 錯誤的不可避免性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. 主要內容錯誤類型 VS中的調試方法非中斷模式下的調試中斷模式下的調試C#中可用的異常處理技術錯誤類型非致命錯誤(如:Spelling mistake
2、 )致命錯誤: (Fatal errors)語法錯誤; (Syntax errors)運行時錯誤; (Runtime errors)邏輯錯誤。 (Logic errors)錯誤的發(fā)現:易難非中斷模式下的調試通過控制臺輸出調試信息通過Output窗口輸出調試信息通過外部的文本文件(或系統(tǒng)日志)輸出調試信息使用VS IDE中提供的跟蹤點進行非中斷模式下的調試信息輸出通過控制臺輸出調試信息通過Console.WriteLine()函數向控制臺輸出調試信息。通過Output窗口輸出調試信息在運行期間將調試信息寫入Output窗口的Debug視圖的兩種方法:(位于 System.Diagnostics
3、命名空間下)Debug.WriteLine() Debug.Write() Trace.WriteLine() Trace.Write()兩者的異同點及與Console.WriteLine()在用法上的不同。Debug與Trace的異同Debug類或Trace類都屬于System.Diagnostics類庫,用于將運行時消息寫到“輸出”窗口。如果只在程序的調試版本中輸出,則使用 Debug 類。如果要同時在調試版本和發(fā)布版本中輸出,則使用 Trace 類。向Output窗口輸出信息除了應用程序的程序輸出外,“輸出”窗口還可以顯示下列信息: 調試器已經加載或卸載的模塊。引發(fā)的異常。退出的進程。退
4、出的線程。有條件輸出Debug.WriteIf() Trace.WriteIf()Debug.WriteLineIf() Trace.WriteLineIf()VS IDE中的跟蹤點輸出調試信息而不必修改代碼的一種方式。VS IDE中的跟蹤點從現有斷點創(chuàng)建跟蹤點診斷輸出與跟蹤點的優(yōu)缺點中斷模式下的調試暫停應用程序以進入中斷模式程序執(zhí)行到斷點時自動進入中斷模式(僅用于Debug模式)斷點的配置當程序執(zhí)行到斷點所在語句時:立即進入中斷模式(缺省);當布爾表達式的值為true時,進入中斷模式;當遇到某斷點的次數達到某個預定值時,進入中斷模式;當從上次遇到斷點以來某個變量或表達式的值發(fā)生了更改時,進入
5、中斷模式;輸出文本到Output窗口或執(zhí)行一個宏。(跟蹤點)斷點的使用斷點的添加;斷點的刪除與禁用;斷點的屬性:進入中斷模式的其他方式使用斷言產生(拋出)一個異常使用斷言斷言(或 Assert 語句)測試您作為 Assert 語句的參數指定的條件。如果此條件計算為 true,不發(fā)生操作。如果此條件計算為 false,則斷言失敗。如果正在調試版本中運行,則程序進入中斷模式。Debug.Assert 和 Trace.Assert 方法進入中斷模式后的可用工具監(jiān)視變量的內容單步執(zhí)行代碼立即與命令窗口調用堆棧窗口監(jiān)視變量的內容AutosLocalsWatch NQuick Watch也可用于在中斷模式
6、下修改變量的值監(jiān)視變量的內容“自動”窗口顯示在當前代碼行和上一代碼行中使用的變量。“局部變量”窗口顯示對于當前上下文或范圍來說位于本地的變量。通常,這是當前正在執(zhí)行的過程或函數。在“監(jiān)視”窗口中可以添加要監(jiān)視其值的變量。此外,還可以添加調試器所能識別的任何有效表達式。“快速監(jiān)視”對話框在概念上類似于“監(jiān)視”窗口,但是“快速監(jiān)視”每次只能顯示一個變量或表達式。 單步執(zhí)行代碼Step Into:執(zhí)行并移動到下一個要執(zhí)行的語句上;Step Over:同上,但不進入嵌套的代碼塊,包括函數;Step Out:執(zhí)行到代碼塊的末尾,在執(zhí)行完該語句塊后,重新進入中斷模式。立即和命令窗口通過Command窗口可
7、以手動執(zhí)行VS操作通過Immediate窗口可以執(zhí)行源代碼調用堆棧窗口實際上是一個嵌套的函數調用列表,顯示了當前函數、調用它的函數、以及調用函數的函數,調用的位置也被記錄下來。異常處理異常:代碼運行時產生的錯誤。在異常發(fā)生并且未被處理時,應用程序會中斷執(zhí)行,并顯示異常相關的信息。例:System.IndexOutOfRangeException以File.Open 方法為例,可能拋出以下異常: 異常處理結構 try . catch ( e) . finally . 異常處理結構try-catch 語句由一個 try 塊后跟一個或多個 catch 子句構成,這些子句指定不同的異常處理程序。其中:
8、try 塊包含可能導致異常的保護代碼。該塊一直執(zhí)行到引發(fā)異常或成功完成為止。catch 子句使用時可以不帶任何參數,這種情況下它捕獲任何類型的異常,并被稱為一般 catch 子句。它還可以接受從 System.Exception 派生的對象參數,這種情況下它處理特定的異常。異常處理結構在同一個 try-catch 語句中可以使用一個以上的特定 catch 子句。這種情況下 catch 子句的順序很重要,因為會按順序檢查 catch 子句。將先捕獲特定程度較高的異常,而不是特定程度較小的異常。在 catch 塊中可以使用 throw 語句再次引發(fā)已由 catch 語句捕獲的異常。 如果要再次引發(fā)當前由無參數的 catch 子句處理的異常,則使用不帶參數的 throw 語句。 異常處理結構finally 塊用于清除 try 塊中分配的任何資源,以及運行任何即使在發(fā)生異常時也必須執(zhí)行的代碼。控制總是傳遞給 finally 塊,與 try 塊的退出方式無關。The trycatch StatementThe catch ClauseThe catch ClauseThe finally BlockF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動化施工方案
- 幼兒園大班《滑梯的回憶》教案
- 建筑施工特種作業(yè)-高處作業(yè)吊籃安裝拆卸工真題庫-2
- 容錯性定義題目及答案
- 1 1 集合-2026版53高考數學總復習A版精煉
- 2023-2024學年云南省保山市高二下學期期末質量檢測數學試題(解析版)
- 2023-2024學年山東省青島市萊西市高二下學期期末考試數學試題(解析版)
- 新疆盛鼎龍新材料科技有限責任公司2500噸-年高效偶聯劑5000噸-年甲基苯基硅油及3萬噸-年硅酮膠項目環(huán)評報告
- 2025年秋三年級上冊語文同步教案 8 總也倒不了的老屋
- 物流公司和客戶合作協議
- 房租代收款合同模板
- 2024屆涿鹿縣小升初全真數學模擬預測卷含解析
- 醫(yī)療機構審核管理制度
- 華南理工綜評機測試題(一)
- 浙江省杭州市臨平區(qū)2023-2024學年五年級下學期期末語文試卷
- 智能倉庫與倉儲管理自動化
- 2024-2025部編人教版2二年級語文下冊全冊測試卷【共10套附答案】
- 第一課能源史簡介
- 醫(yī)療器械倉庫管理課件
- 2024年火電電力職業(yè)技能鑒定考試-600MW超臨界機組運行筆試參考題庫含答案
- 2024年全國工會財務知識大賽備賽試題庫500(含答案)
評論
0/150
提交評論