《錯誤處理》PPT課件.ppt_第1頁
《錯誤處理》PPT課件.ppt_第2頁
《錯誤處理》PPT課件.ppt_第3頁
《錯誤處理》PPT課件.ppt_第4頁
《錯誤處理》PPT課件.ppt_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第12章錯誤調試和異常處理 12 1錯誤分類12 2程序調試12 3異常處理 12 1錯誤分類 1 語法錯誤語法錯誤也稱為編譯錯誤 是由于不正確地編寫代碼而產生的 如果錯誤地輸入了關鍵字 例如 將int簡寫為Int 遺漏了某些必須的語句成分等 那么C 在編譯應用程序時就會檢測到這些錯誤 并提示相應的錯誤信息 代碼加行號 選擇 工具 選項 命令 在出現的 選項 對話框中選擇 文本編輯器 C 常規(guī) 選項 出現如圖12 2所示的對話框 例如 勾選 行號 則在代碼的每一行前顯示該行的行號 還可以通過選擇 C 中其他項來設置較復雜的編輯功能 2 運行錯誤在C 項目運行期間 當一個語句試圖執(zhí)行一個不能執(zhí)行的操作時 就會發(fā)生運行錯誤 例如 數據溢出 數組下標越界等 例如 有一個窗體myForm1上包含以下事件過程 privatevoidbutton1 Click objectsender EventArgse int a newint 10 inti for i 0 i 20 i a i 2 i 12 2程序調試C 提供了強大的程序調試功能 使用其調試環(huán)境可以有效地完成程序的調試工作 從而有助于發(fā)現運行錯誤 12 2 1調試工具 1 調試 工具欄 2 調試 菜單 12 2 2如何開始調試從 調試 菜單中選擇 啟動調試 逐語句 或 逐過程 命令 或者在代碼編輯窗口中 單擊鼠標右鍵 然后從快捷菜單中選擇 運行到光標處 命令 即開始調試過程 如果選擇 啟動調試 命令 則應用程序啟動并一直運行到斷點 可以在任何時刻中斷執(zhí)行以檢查值或檢查程序狀態(tài) 若選擇 逐語句 或 逐過程 應用程序啟動并執(zhí)行 然后在第一行中斷 如果選擇 運行到光標處 命令 則應用程序啟動并一直運行到斷點或光標位置 具體看是斷點在前還是光標在前 可以在源窗口中設置光標位置 某些情況下 不出現中斷 這意味著執(zhí)行始終未到達設置光標處的代碼 12 2 3設置斷點斷點是在程序中設置的一個位置 程序執(zhí)行到些位置時中斷 或暫停 斷點的作用是在調試程序時 當程序執(zhí)行到斷點的語句時會暫停程序的運行 供程序員檢查這一位置上程序元素的運行情況 這樣有助于定位產生錯誤輸出或出錯的代碼段 設置和取消斷點的方法如下 方法1 用鼠標右鍵單擊某代碼行 從出現的快捷菜單中選擇 斷點 插入斷點 命令 設置斷點 或者 斷點 刪除斷點 命令 取消斷點 方法2 將光標移至需要設置斷點的語句處 然后按F9鍵 12 2 4定位錯誤當某行代碼中出現錯誤時 該錯誤會自動添加到 錯誤列表 和 輸出 窗口中 可以使用 錯誤列表 或 輸出 窗口來查找代碼中的錯誤 其操作是 雙擊 錯誤列表 或 輸出 窗口中的項 則光標自動跳到代碼編輯器中相應的出錯行 有些語言會在編碼錯誤下顯示一條波浪線 將鼠標懸停在帶有波浪線標記的代碼上可顯示一條消息 其中對錯誤進行了描述 12 2 5調試過程先在某行設置斷點 然后在調試器中按F5鍵運行應用程序 應用程序會在該行停止 此時可以檢查任何給定變量的值 或觀察執(zhí)行跳出循環(huán)的時間和方式 按F10鍵逐行單步執(zhí)行代碼 12 2 6顯示調試信息在C 程序中斷的狀況下 可以將鼠標放在希望觀察的執(zhí)行過的語句變量上面 調試器就會自動顯示執(zhí)行到斷點時該變量的值 如下圖 也可以在某個對象上單擊鼠標右鍵 從彈出的快捷菜單中選擇 快速監(jiān)視 命令 即可觀察到對象中各個元素的值 如下圖 12 3異常處理 異常處理語句1 try catch語句try 可能產生異常的程序代碼 catch 異常類型1異常類對象1 處理異常類型1的異??刂拼a catch 異常類型n異常類對象n 處理異常類型n的異??刂拼a 例12 2 創(chuàng)建一個控制臺應用程序Proj12 2項目 通過try catch語句捕捉整數除零錯誤 namespaceProj12 2 classProgram staticvoidMain string args intx 5 y 0 try try catch語句 x x y 引發(fā)除零錯誤 catch Exceptionerr 捕捉該錯誤 Console WriteLine 0 err Message 顯示錯誤信息 輸出 試圖除以零 2 try catch finally語句同try catch語句相比 try catch finally語句增加了一個finally塊 其作用是不管是否發(fā)生異常 即使沒有catch塊 都將執(zhí)行finally塊中的語句 也就是說 finally塊始終會執(zhí)行 而與是否引發(fā)異?;蛘呤欠裾业脚c異常類型匹配的catch塊無關 其余與try catch語句相同 finally塊通常用來釋放資源 而不用等待由運行庫中的垃圾回收器來終結對象 例12 3 創(chuàng)建一個控制臺應用程序Proj12 3項目 說明finally塊的作用 namespaceProj12 3 classProgram staticvoidMain string args ints 10 i int a newint 5 1 2 3 0 4 try for i 0 i a Length i Console Write 0 s a i Console WriteLine catch Exceptionerr Console WriteLine 0 err Message finally Console WriteLine 執(zhí)行finally塊 運行結果 3 throw語句throw語句有兩種使用方式 1 直接拋出異常 2 在出現異常時 通過含有catch塊對其進行處理并使用throw語句重新把這個異常拋出并讓調用這個方法的程序進行捕捉和處理 throw語句的使用語法格式如下 throw 表達式 其中 表達式 類型必須是System Exception或從System Exception派生的類的類型 throw語句也可以不帶 表達式 此時只能用在catch塊中 在這種情況下 它重新拋出當前正在由catch塊處理的異常 12 3 3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論