




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各樣的錯誤。這些錯誤可能是編程時人為的失誤,也可能是計算機(jī)運(yùn)行時的異常錯誤,又或許是后期軟件使用者的錯誤操作導(dǎo)致的錯誤等等。為了盡量保證軟件的正確性,掌握好的程序調(diào)試方法是非常重要的。當(dāng)然,不論程序員的工作多么仔細(xì),測試工作多么周密,成功地通過調(diào)試、測試的程序在運(yùn)行中仍舊有可能會出現(xiàn)錯誤。錯誤處理程序就是針對運(yùn)行中的錯誤而編寫的對錯誤進(jìn)行處理的程序。第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各117.1程序的錯誤類型程序在編寫代碼或調(diào)試運(yùn)行中,屏幕上將出現(xiàn)一些出錯的提示信息,這些信息按照出錯的類型可分為編譯錯誤、實(shí)時錯誤和邏輯錯誤三種。17.1程序的錯誤類型程序在編寫代碼或調(diào)試運(yùn)行中,屏幕上217.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時,違反語句的語法規(guī)定引起的錯誤。例如:關(guān)鍵字拼寫錯誤、變量名定義錯、表達(dá)式錯誤等。這類錯誤的表現(xiàn)形式是系統(tǒng)將出錯行代碼變成紅色高亮度,并拒絕接收新的輸入。例如17.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時317.1.2運(yùn)行時錯誤運(yùn)行時錯誤是指應(yīng)用程序在運(yùn)行期間執(zhí)行了非法操作所發(fā)生的錯誤。例如,除法運(yùn)算中除數(shù)為零,訪問文件時文件夾或文件找不到等,給數(shù)值變量賦予了字符串值等。這種錯誤只有在程序運(yùn)行時才能被發(fā)現(xiàn)。17.1.2運(yùn)行時錯誤運(yùn)行時錯誤是指應(yīng)用程序在運(yùn)行期間執(zhí)行417.1.3邏輯錯誤邏輯錯誤使程序運(yùn)行時得不到預(yù)期的結(jié)果。這種程序沒有語法錯誤,也能運(yùn)行,但卻得不到正確的結(jié)果。例如,在一個算術(shù)表達(dá)式中,把乘號“*”寫成了加號“+”,條件語句的條件寫錯,循環(huán)次數(shù)計算錯誤等。通常,調(diào)試程序過程中所花的大部分時間和精力都在邏輯錯誤上。17.1.3邏輯錯誤邏輯錯誤使程序運(yùn)行時得不到預(yù)期的結(jié)果。517.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的地方,并對其進(jìn)行修改。作為編程人員必須掌握排除錯誤的各種方法和技巧。因?yàn)?,即使是非常熟練的編程人員也會在編寫應(yīng)用程序時犯一些錯誤,而此時掌握好的排錯方法就會變得非常重要了。17.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的617.2.1編譯錯誤排錯與實(shí)時錯誤排錯1、編譯錯誤排錯2、實(shí)時錯誤排錯17.2.1編譯錯誤排錯與實(shí)時錯誤排錯1、編譯錯誤排錯717.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不到所期望的結(jié)果。這類錯誤往往是程序邏輯缺陷所引起的。例如:程序的邏輯判斷條件不正確、循環(huán)的次數(shù)不對、進(jìn)入死循環(huán)等錯誤,或是不能按照運(yùn)算式得到結(jié)果等。這類錯誤往往需要用戶進(jìn)行調(diào)試才能排除。17.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不817.3錯誤處理程序錯誤處理程序的作用是,對程序運(yùn)行期發(fā)生的錯誤操作進(jìn)行響應(yīng)和處理。當(dāng)程序發(fā)生錯誤時,錯誤處理程序能夠捕獲錯誤,并按程序中所設(shè)計的處理方法對錯誤進(jìn)行處理。17.3錯誤處理程序錯誤處理程序的作用是,對程序運(yùn)行期發(fā)917.3.1Err對象程序運(yùn)行中出現(xiàn)問題時,當(dāng)前運(yùn)行程序的錯誤信息就會在Err對象中反應(yīng)出來。Err是VisualBasic在運(yùn)行期間的對象,包含了最新的錯誤信息。利用這些錯誤信息,可以了解系統(tǒng)錯誤的原因,也可以編寫有針對性的錯誤處理程序。程序運(yùn)行后,Err對象就存在,出現(xiàn)錯誤時,有關(guān)信息被寫到相應(yīng)的屬性中。直到遇到OnError語句,并且在使用ExitSub等語句退出一個過程后,Err對象中的屬性值才被清除。17.3.1Err對象程序運(yùn)行中出現(xiàn)問題時,當(dāng)前運(yùn)行程1017.3.2捕獲錯誤在程序運(yùn)行中,應(yīng)及時捕獲出現(xiàn)的錯誤,并予以相應(yīng)的提示或處理。如果沒有及時捕獲錯誤,會導(dǎo)致程序終止運(yùn)行。在實(shí)際的應(yīng)用系統(tǒng)中,應(yīng)該有錯誤處理程序。將捕獲錯誤程序有時又稱為錯誤陷阱,實(shí)際上是在出現(xiàn)錯誤時,將程序的執(zhí)行流程引導(dǎo)到錯誤處理程序,由錯誤處理程序針對具體的錯誤進(jìn)行處理。捕獲錯誤的基本方法是在程序的開始放置錯誤轉(zhuǎn)移命令,相當(dāng)于激活錯誤處理程序。具體的操作語句主要有OnErrorGoTo和OnErrorResumeNext。17.3.2捕獲錯誤在程序運(yùn)行中,應(yīng)及時捕獲出現(xiàn)的錯誤,1117.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的錯誤,編寫相應(yīng)的錯誤處理程序。上一節(jié)的例17.1中,語句標(biāo)號“ErrorZero:”之后的代碼就是一段簡單的錯誤處理程序,該例是對出現(xiàn)的錯誤給出簡單的提示。編寫錯誤處理程序的目的有三個:一是防止程序異常的中斷運(yùn)行;二是如果可能,在程序運(yùn)行中糾正某些錯誤,使程序繼續(xù)運(yùn)行;三是將發(fā)生的錯誤通知用戶,以便用戶糾正錯誤。17.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的1217.3.3集中錯誤處理程序在實(shí)際的商業(yè)應(yīng)用系統(tǒng)中,錯誤處理程序時必不可少的。只給一個過程添加錯誤處理程序感覺很簡單。但給所有過程都添加錯誤處理程序,工作量則是可想而知的。解決這個問題的方法是建立一個集中錯誤處理的子程序。在所有的過程中,如果出現(xiàn)錯誤,都調(diào)用該子程序,并用它來集中處理錯誤。17.3.3集中錯誤處理程序在實(shí)際的商業(yè)應(yīng)用系統(tǒng)中,錯誤13演講完畢,謝謝觀看!演講完畢,謝謝觀看!14第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各樣的錯誤。這些錯誤可能是編程時人為的失誤,也可能是計算機(jī)運(yùn)行時的異常錯誤,又或許是后期軟件使用者的錯誤操作導(dǎo)致的錯誤等等。為了盡量保證軟件的正確性,掌握好的程序調(diào)試方法是非常重要的。當(dāng)然,不論程序員的工作多么仔細(xì),測試工作多么周密,成功地通過調(diào)試、測試的程序在運(yùn)行中仍舊有可能會出現(xiàn)錯誤。錯誤處理程序就是針對運(yùn)行中的錯誤而編寫的對錯誤進(jìn)行處理的程序。第17章程序調(diào)試與錯誤處理在編程過程中,經(jīng)常會遇到各種各1517.1程序的錯誤類型程序在編寫代碼或調(diào)試運(yùn)行中,屏幕上將出現(xiàn)一些出錯的提示信息,這些信息按照出錯的類型可分為編譯錯誤、實(shí)時錯誤和邏輯錯誤三種。17.1程序的錯誤類型程序在編寫代碼或調(diào)試運(yùn)行中,屏幕上1617.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時,違反語句的語法規(guī)定引起的錯誤。例如:關(guān)鍵字拼寫錯誤、變量名定義錯、表達(dá)式錯誤等。這類錯誤的表現(xiàn)形式是系統(tǒng)將出錯行代碼變成紅色高亮度,并拒絕接收新的輸入。例如17.1.1編譯錯誤編譯錯誤發(fā)生在編輯時,是用戶輸入代碼時1717.1.2運(yùn)行時錯誤運(yùn)行時錯誤是指應(yīng)用程序在運(yùn)行期間執(zhí)行了非法操作所發(fā)生的錯誤。例如,除法運(yùn)算中除數(shù)為零,訪問文件時文件夾或文件找不到等,給數(shù)值變量賦予了字符串值等。這種錯誤只有在程序運(yùn)行時才能被發(fā)現(xiàn)。17.1.2運(yùn)行時錯誤運(yùn)行時錯誤是指應(yīng)用程序在運(yùn)行期間執(zhí)行1817.1.3邏輯錯誤邏輯錯誤使程序運(yùn)行時得不到預(yù)期的結(jié)果。這種程序沒有語法錯誤,也能運(yùn)行,但卻得不到正確的結(jié)果。例如,在一個算術(shù)表達(dá)式中,把乘號“*”寫成了加號“+”,條件語句的條件寫錯,循環(huán)次數(shù)計算錯誤等。通常,調(diào)試程序過程中所花的大部分時間和精力都在邏輯錯誤上。17.1.3邏輯錯誤邏輯錯誤使程序運(yùn)行時得不到預(yù)期的結(jié)果。1917.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的地方,并對其進(jìn)行修改。作為編程人員必須掌握排除錯誤的各種方法和技巧。因?yàn)?,即使是非常熟練的編程人員也會在編寫應(yīng)用程序時犯一些錯誤,而此時掌握好的排錯方法就會變得非常重要了。17.2錯誤排錯方法當(dāng)程序中出現(xiàn)錯誤時,應(yīng)當(dāng)尋找到出錯的2017.2.1編譯錯誤排錯與實(shí)時錯誤排錯1、編譯錯誤排錯2、實(shí)時錯誤排錯17.2.1編譯錯誤排錯與實(shí)時錯誤排錯1、編譯錯誤排錯2117.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不到所期望的結(jié)果。這類錯誤往往是程序邏輯缺陷所引起的。例如:程序的邏輯判斷條件不正確、循環(huán)的次數(shù)不對、進(jìn)入死循環(huán)等錯誤,或是不能按照運(yùn)算式得到結(jié)果等。這類錯誤往往需要用戶進(jìn)行調(diào)試才能排除。17.2.2邏輯錯誤調(diào)試方法邏輯錯誤是指執(zhí)行程序后,得不2217.3錯誤處理程序錯誤處理程序的作用是,對程序運(yùn)行期發(fā)生的錯誤操作進(jìn)行響應(yīng)和處理。當(dāng)程序發(fā)生錯誤時,錯誤處理程序能夠捕獲錯誤,并按程序中所設(shè)計的處理方法對錯誤進(jìn)行處理。17.3錯誤處理程序錯誤處理程序的作用是,對程序運(yùn)行期發(fā)2317.3.1Err對象程序運(yùn)行中出現(xiàn)問題時,當(dāng)前運(yùn)行程序的錯誤信息就會在Err對象中反應(yīng)出來。Err是VisualBasic在運(yùn)行期間的對象,包含了最新的錯誤信息。利用這些錯誤信息,可以了解系統(tǒng)錯誤的原因,也可以編寫有針對性的錯誤處理程序。程序運(yùn)行后,Err對象就存在,出現(xiàn)錯誤時,有關(guān)信息被寫到相應(yīng)的屬性中。直到遇到OnError語句,并且在使用ExitSub等語句退出一個過程后,Err對象中的屬性值才被清除。17.3.1Err對象程序運(yùn)行中出現(xiàn)問題時,當(dāng)前運(yùn)行程2417.3.2捕獲錯誤在程序運(yùn)行中,應(yīng)及時捕獲出現(xiàn)的錯誤,并予以相應(yīng)的提示或處理。如果沒有及時捕獲錯誤,會導(dǎo)致程序終止運(yùn)行。在實(shí)際的應(yīng)用系統(tǒng)中,應(yīng)該有錯誤處理程序。將捕獲錯誤程序有時又稱為錯誤陷阱,實(shí)際上是在出現(xiàn)錯誤時,將程序的執(zhí)行流程引導(dǎo)到錯誤處理程序,由錯誤處理程序針對具體的錯誤進(jìn)行處理。捕獲錯誤的基本方法是在程序的開始放置錯誤轉(zhuǎn)移命令,相當(dāng)于激活錯誤處理程序。具體的操作語句主要有OnErrorGoTo和OnErrorResumeNext。17.3.2捕獲錯誤在程序運(yùn)行中,應(yīng)及時捕獲出現(xiàn)的錯誤,2517.3.3編寫錯誤處理程序捕獲錯誤后,應(yīng)當(dāng)根據(jù)被捕獲的錯誤,編寫相應(yīng)的錯誤處理程序。上一節(jié)的例17.1中,語句標(biāo)號“ErrorZero:”之后的代碼就是一段簡單的錯誤處理程序,該例是對出現(xiàn)的錯誤給出簡單的提示。編寫錯誤處理程序的目的有三個:一是防止程序異常的中斷運(yùn)行;二是如果可能,在程序運(yùn)行中糾正某些錯誤,使程序繼續(xù)運(yùn)行;三是將發(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川達(dá)州山體噴漿施工方案
- 變壓器現(xiàn)場吊芯施工方案
- 重慶地鐵5號線施工方案
- 《大數(shù)據(jù)技術(shù)導(dǎo)論》-教學(xué)大綱
- 高埗寫字樓殺蟲施工方案
- 鐵制容器防腐措施方案
- 八下南充數(shù)學(xué)試卷
- 太陽能發(fā)電安裝 施工方案
- 熔鹽爐拼接爐拱施工方案
- 黑龍江城鎮(zhèn)亮化施工方案
- 金融數(shù)學(xué)布朗運(yùn)動
- 第三單元名著閱讀《經(jīng)典常談》課件 2023-2024學(xué)年統(tǒng)編版語文八年級下冊11.22
- 江西省上饒市余干縣沙港中學(xué)2024-2025學(xué)年八年級上學(xué)期競賽生物學(xué)試卷(無答案)
- 2024年《認(rèn)證基礎(chǔ)》真題及答案
- 淤地壩應(yīng)急處置
- 神經(jīng)外科主要治病
- 農(nóng)資打假監(jiān)管培訓(xùn)
- 鸚鵡介紹課件教學(xué)課件
- 汽車檢測技術(shù)課件 任務(wù)一 認(rèn)識汽車檢測站
- 貴州省2025年初中學(xué)業(yè)水平考試英語 模擬試題卷(一)(含答案不含聽力原文及聽力音頻)
- DB35T 2056-2022 城市軌道交通綜合監(jiān)控系統(tǒng)網(wǎng)絡(luò)安全實(shí)施要求
評論
0/150
提交評論