程序調(diào)試與錯誤處理課件_第1頁
程序調(diào)試與錯誤處理課件_第2頁
程序調(diào)試與錯誤處理課件_第3頁
程序調(diào)試與錯誤處理課件_第4頁
程序調(diào)試與錯誤處理課件_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各樣的錯誤。這些錯誤可能是編程時人為的失誤,也可能是計算機運行時的異常錯誤,又或許是后期軟件使用者的錯誤操作導(dǎo)致的錯誤等等。為了盡量保證軟件的正確性,掌握好的程序調(diào)試方法是非常重要的。當(dāng)然,不論程序員的工作多么仔細,測試工作多么周密,成功地通過調(diào)試、測試的程序在運行中仍舊有可能會出現(xiàn)錯誤。錯誤處理程序就是針對運行中的錯誤而編寫的對錯誤進行處理的程序。第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各117.1程序的錯誤類型程序在編寫代碼或調(diào)試運行中,屏幕上將出現(xiàn)一些出錯的提示信息,這些信息按照出錯的類型可分為編譯錯誤、實時錯誤和邏輯錯誤三種。17.1程序的錯誤類型程序在編寫代碼或調(diào)試運行中,屏幕上217.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時,違反語句的語法規(guī)定引起的錯誤。例如:關(guān)鍵字拼寫錯誤、變量名定義錯、表達式錯誤等。這類錯誤的表現(xiàn)形式是系統(tǒng)將出錯行代碼變成紅色高亮度,并拒絕接收新的輸入。例如17.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時317.1.2運行時錯誤運行時錯誤是指應(yīng)用程序在運行期間執(zhí)行了非法操作所發(fā)生的錯誤。例如,除法運算中除數(shù)為零,訪問文件時文件夾或文件找不到等,給數(shù)值變量賦予了字符串值等。這種錯誤只有在程序運行時才能被發(fā)現(xiàn)。17.1.2運行時錯誤運行時錯誤是指應(yīng)用程序在運行期間執(zhí)行417.1.3邏輯錯誤邏輯錯誤使程序運行時得不到預(yù)期的結(jié)果。這種程序沒有語法錯誤,也能運行,但卻得不到正確的結(jié)果。例如,在一個算術(shù)表達式中,把乘號“*”寫成了加號“+”,條件語句的條件寫錯,循環(huán)次數(shù)計算錯誤等。通常,調(diào)試程序過程中所花的大部分時間和精力都在邏輯錯誤上。17.1.3邏輯錯誤邏輯錯誤使程序運行時得不到預(yù)期的結(jié)果。517.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的地方,并對其進行修改。作為編程人員必須掌握排除錯誤的各種方法和技巧。因為,即使是非常熟練的編程人員也會在編寫應(yīng)用程序時犯一些錯誤,而此時掌握好的排錯方法就會變得非常重要了。17.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的617.2.1編譯錯誤排錯與實時錯誤排錯1、編譯錯誤排錯2、實時錯誤排錯17.2.1編譯錯誤排錯與實時錯誤排錯1、編譯錯誤排錯717.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不到所期望的結(jié)果。這類錯誤往往是程序邏輯缺陷所引起的。例如:程序的邏輯判斷條件不正確、循環(huán)的次數(shù)不對、進入死循環(huán)等錯誤,或是不能按照運算式得到結(jié)果等。這類錯誤往往需要用戶進行調(diào)試才能排除。17.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不817.3錯誤處理程序錯誤處理程序的作用是,對程序運行期發(fā)生的錯誤操作進行響應(yīng)和處理。當(dāng)程序發(fā)生錯誤時,錯誤處理程序能夠捕獲錯誤,并按程序中所設(shè)計的處理方法對錯誤進行處理。17.3錯誤處理程序錯誤處理程序的作用是,對程序運行期發(fā)917.3.1Err對象程序運行中出現(xiàn)問題時,當(dāng)前運行程序的錯誤信息就會在Err對象中反應(yīng)出來。Err是VisualBasic在運行期間的對象,包含了最新的錯誤信息。利用這些錯誤信息,可以了解系統(tǒng)錯誤的原因,也可以編寫有針對性的錯誤處理程序。程序運行后,Err對象就存在,出現(xiàn)錯誤時,有關(guān)信息被寫到相應(yīng)的屬性中。直到遇到OnError語句,并且在使用ExitSub等語句退出一個過程后,Err對象中的屬性值才被清除。17.3.1Err對象程序運行中出現(xiàn)問題時,當(dāng)前運行程1017.3.2捕獲錯誤在程序運行中,應(yīng)及時捕獲出現(xiàn)的錯誤,并予以相應(yīng)的提示或處理。如果沒有及時捕獲錯誤,會導(dǎo)致程序終止運行。在實際的應(yīng)用系統(tǒng)中,應(yīng)該有錯誤處理程序。將捕獲錯誤程序有時又稱為錯誤陷阱,實際上是在出現(xiàn)錯誤時,將程序的執(zhí)行流程引導(dǎo)到錯誤處理程序,由錯誤處理程序針對具體的錯誤進行處理。捕獲錯誤的基本方法是在程序的開始放置錯誤轉(zhuǎn)移命令,相當(dāng)于激活錯誤處理程序。具體的操作語句主要有OnErrorGoTo和OnErrorResumeNext。17.3.2捕獲錯誤在程序運行中,應(yīng)及時捕獲出現(xiàn)的錯誤,1117.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的錯誤,編寫相應(yīng)的錯誤處理程序。上一節(jié)的例17.1中,語句標(biāo)號“ErrorZero:”之后的代碼就是一段簡單的錯誤處理程序,該例是對出現(xiàn)的錯誤給出簡單的提示。編寫錯誤處理程序的目的有三個:一是防止程序異常的中斷運行;二是如果可能,在程序運行中糾正某些錯誤,使程序繼續(xù)運行;三是將發(fā)生的錯誤通知用戶,以便用戶糾正錯誤。17.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的1217.3.3集中錯誤處理程序在實際的商業(yè)應(yīng)用系統(tǒng)中,錯誤處理程序時必不可少的。只給一個過程添加錯誤處理程序感覺很簡單。但給所有過程都添加錯誤處理程序,工作量則是可想而知的。解決這個問題的方法是建立一個集中錯誤處理的子程序。在所有的過程中,如果出現(xiàn)錯誤,都調(diào)用該子程序,并用它來集中處理錯誤。17.3.3集中錯誤處理程序在實際的商業(yè)應(yīng)用系統(tǒng)中,錯誤13演講完畢,謝謝觀看!演講完畢,謝謝觀看!14第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各樣的錯誤。這些錯誤可能是編程時人為的失誤,也可能是計算機運行時的異常錯誤,又或許是后期軟件使用者的錯誤操作導(dǎo)致的錯誤等等。為了盡量保證軟件的正確性,掌握好的程序調(diào)試方法是非常重要的。當(dāng)然,不論程序員的工作多么仔細,測試工作多么周密,成功地通過調(diào)試、測試的程序在運行中仍舊有可能會出現(xiàn)錯誤。錯誤處理程序就是針對運行中的錯誤而編寫的對錯誤進行處理的程序。第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各1517.1程序的錯誤類型程序在編寫代碼或調(diào)試運行中,屏幕上將出現(xiàn)一些出錯的提示信息,這些信息按照出錯的類型可分為編譯錯誤、實時錯誤和邏輯錯誤三種。17.1程序的錯誤類型程序在編寫代碼或調(diào)試運行中,屏幕上1617.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時,違反語句的語法規(guī)定引起的錯誤。例如:關(guān)鍵字拼寫錯誤、變量名定義錯、表達式錯誤等。這類錯誤的表現(xiàn)形式是系統(tǒng)將出錯行代碼變成紅色高亮度,并拒絕接收新的輸入。例如17.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時1717.1.2運行時錯誤運行時錯誤是指應(yīng)用程序在運行期間執(zhí)行了非法操作所發(fā)生的錯誤。例如,除法運算中除數(shù)為零,訪問文件時文件夾或文件找不到等,給數(shù)值變量賦予了字符串值等。這種錯誤只有在程序運行時才能被發(fā)現(xiàn)。17.1.2運行時錯誤運行時錯誤是指應(yīng)用程序在運行期間執(zhí)行1817.1.3邏輯錯誤邏輯錯誤使程序運行時得不到預(yù)期的結(jié)果。這種程序沒有語法錯誤,也能運行,但卻得不到正確的結(jié)果。例如,在一個算術(shù)表達式中,把乘號“*”寫成了加號“+”,條件語句的條件寫錯,循環(huán)次數(shù)計算錯誤等。通常,調(diào)試程序過程中所花的大部分時間和精力都在邏輯錯誤上。17.1.3邏輯錯誤邏輯錯誤使程序運行時得不到預(yù)期的結(jié)果。1917.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的地方,并對其進行修改。作為編程人員必須掌握排除錯誤的各種方法和技巧。因為,即使是非常熟練的編程人員也會在編寫應(yīng)用程序時犯一些錯誤,而此時掌握好的排錯方法就會變得非常重要了。17.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的2017.2.1編譯錯誤排錯與實時錯誤排錯1、編譯錯誤排錯2、實時錯誤排錯17.2.1編譯錯誤排錯與實時錯誤排錯1、編譯錯誤排錯2117.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不到所期望的結(jié)果。這類錯誤往往是程序邏輯缺陷所引起的。例如:程序的邏輯判斷條件不正確、循環(huán)的次數(shù)不對、進入死循環(huán)等錯誤,或是不能按照運算式得到結(jié)果等。這類錯誤往往需要用戶進行調(diào)試才能排除。17.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不2217.3錯誤處理程序錯誤處理程序的作用是,對程序運行期發(fā)生的錯誤操作進行響應(yīng)和處理。當(dāng)程序發(fā)生錯誤時,錯誤處理程序能夠捕獲錯誤,并按程序中所設(shè)計的處理方法對錯誤進行處理。17.3錯誤處理程序錯誤處理程序的作用是,對程序運行期發(fā)2317.3.1Err對象程序運行中出現(xiàn)問題時,當(dāng)前運行程序的錯誤信息就會在Err對象中反應(yīng)出來。Err是VisualBasic在運行期間的對象,包含了最新的錯誤信息。利用這些錯誤信息,可以了解系統(tǒng)錯誤的原因,也可以編寫有針對性的錯誤處理程序。程序運行后,Err對象就存在,出現(xiàn)錯誤時,有關(guān)信息被寫到相應(yīng)的屬性中。直到遇到OnError語句,并且在使用ExitSub等語句退出一個過程后,Err對象中的屬性值才被清除。17.3.1Err對象程序運行中出現(xiàn)問題時,當(dāng)前運行程2417.3.2捕獲錯誤在程序運行中,應(yīng)及時捕獲出現(xiàn)的錯誤,并予以相應(yīng)的提示或處理。如果沒有及時捕獲錯誤,會導(dǎo)致程序終止運行。在實際的應(yīng)用系統(tǒng)中,應(yīng)該有錯誤處理程序。將捕獲錯誤程序有時又稱為錯誤陷阱,實際上是在出現(xiàn)錯誤時,將程序的執(zhí)行流程引導(dǎo)到錯誤處理程序,由錯誤處理程序針對具體的錯誤進行處理。捕獲錯誤的基本方法是在程序的開始放置錯誤轉(zhuǎn)移命令,相當(dāng)于激活錯誤處理程序。具體的操作語句主要有OnErrorGoTo和OnErrorResumeNext。17.3.2捕獲錯誤在程序運行中,應(yīng)及時捕獲出現(xiàn)的錯誤,2517.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的錯誤,編寫相應(yīng)的錯誤處理程序。上一節(jié)的例17.1中,語句標(biāo)號“ErrorZero:”之后的代碼就是一段簡單的錯誤處理程序,該例是對出現(xiàn)的錯誤給出簡單的提示。編寫錯誤處理程序的目的有三個:一是防止程序異常的中斷運行;二是如果可能,在程序運行中糾正某些錯誤,使程序繼續(xù)運行;三是將發(fā)生的錯誤通知用戶,以便用戶糾正錯誤。17.3.3編寫錯誤處理程序捕

溫馨提示

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

最新文檔

評論

0/150

提交評論