版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/2/61VisualBasic.NET
第9章錯(cuò)誤處理2023/2/62
學(xué)習(xí)和實(shí)踐的目標(biāo)需求分析要求:發(fā)生任何錯(cuò)誤時(shí)要有明確的提示,對(duì)數(shù)據(jù)沒有影響,系統(tǒng)不會(huì)中止,不影響重新操作。可靠性是軟件質(zhì)量的重要指標(biāo)。本章的目標(biāo)是使系統(tǒng)具有較強(qiáng)的容錯(cuò)和防錯(cuò)能力。2023/2/63實(shí)現(xiàn)目標(biāo)的知識(shí)點(diǎn)程序中的錯(cuò)誤類型VS.NET的調(diào)試工具
Try...EndTry結(jié)構(gòu)化錯(cuò)誤處理程序防錯(cuò)編程2023/2/659.2錯(cuò)誤類型及其解決方法9.2.1三種錯(cuò)誤類型在VB程序中可能會(huì)發(fā)生3種類型的錯(cuò)誤:語(yǔ)法錯(cuò)誤、運(yùn)行錯(cuò)誤和邏輯錯(cuò)誤。語(yǔ)法錯(cuò)誤(或編譯錯(cuò)誤)語(yǔ)法錯(cuò)誤是一種編程錯(cuò)誤(例如屬性或關(guān)鍵字拼寫錯(cuò)誤),這種錯(cuò)誤違反了VB的語(yǔ)法規(guī)則。在開發(fā)人員輸入程序語(yǔ)句時(shí)VB能指出語(yǔ)法錯(cuò)誤,這時(shí)程序不能運(yùn)行,直到所有的語(yǔ)法錯(cuò)誤被更正為止。2023/2/669.2錯(cuò)誤類型及其解決方法9.2.1三種錯(cuò)誤類型運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤是在程序運(yùn)行期間會(huì)導(dǎo)致程序意外終止的錯(cuò)誤。當(dāng)外部事件或未被發(fā)現(xiàn)的語(yǔ)法錯(cuò)誤強(qiáng)制程序運(yùn)行中斷時(shí),就會(huì)發(fā)生運(yùn)行錯(cuò)誤,也稱作為異常。例如:試圖創(chuàng)建一個(gè)并不存在的數(shù)據(jù)庫(kù)文件的連接,程序就會(huì)產(chǎn)生運(yùn)行錯(cuò)誤。邏輯錯(cuò)誤邏輯錯(cuò)誤是一種人為的編程錯(cuò)誤,即不合理的思維。這種錯(cuò)誤會(huì)導(dǎo)致程序產(chǎn)生不期望的結(jié)果。2023/2/679.2錯(cuò)誤類型及其解決方法9.2.2解決錯(cuò)誤方法發(fā)生語(yǔ)法錯(cuò)誤時(shí),在代碼編輯器中,VS.NET自動(dòng)用藍(lán)色鋸齒狀的下劃線標(biāo)出語(yǔ)法有錯(cuò)誤的語(yǔ)句,將鼠標(biāo)指針停留在該語(yǔ)句上面一段時(shí)間就能獲得關(guān)于錯(cuò)誤的更多信息。編譯錯(cuò)誤時(shí)會(huì)自動(dòng)打開錯(cuò)誤列表窗,只要在其中的某個(gè)錯(cuò)誤上雙擊一下就可以定位至錯(cuò)誤的位置2023/2/699.3使用中斷模式調(diào)試程序
可以在狀態(tài)下(Debug)使用調(diào)試菜單和調(diào)試工具欄的命令進(jìn)行調(diào)試。使用中斷模式調(diào)試程序,不僅可以找錯(cuò)、糾錯(cuò),而且通過(guò)逐步執(zhí)行方式閱讀代碼,理解程序的執(zhí)行流程。下面以學(xué)生成績(jī)管理系統(tǒng)為例介紹中斷模式調(diào)試VB.NET程序的方法。2023/2/6109.3使用中斷模式調(diào)試程序
9.3.1設(shè)置斷點(diǎn)并逐條執(zhí)行調(diào)試程序若要對(duì)學(xué)生成績(jī)管理系統(tǒng)中學(xué)生基本信息進(jìn)行“添加”或“修改”操作,必然會(huì)調(diào)用“frm增改”類中的ShowDialog()方法,現(xiàn)在來(lái)調(diào)試該方法代碼,具體步驟如下:
1.啟動(dòng)學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目。2.把“frm增改.vb”
文件代碼顯示在代碼編輯窗口中。3.將鼠標(biāo)指針移到頁(yè)邊距指示欄(緊靠代碼編輯器窗口左邊緣之外的灰色條)上,在與ShowDialog()方法中的“Me.dgv區(qū)域
=dgv區(qū)域”語(yǔ)句平行處,單擊該指示欄設(shè)置一個(gè)斷點(diǎn)。
2023/2/6119.3使用中斷模式調(diào)試程序
9.3.1設(shè)置斷點(diǎn)并逐條執(zhí)行調(diào)試程序4.單擊調(diào)試工具上的【啟動(dòng)】按鈕再次運(yùn)行程序。此時(shí)生成的學(xué)生成績(jī)管理系統(tǒng)主窗口與正常啟動(dòng)一樣,繼續(xù)進(jìn)行調(diào)試。5.進(jìn)入系統(tǒng)主控界面后,選擇菜單【基本數(shù)據(jù)】中的【學(xué)生】,并在工具欄中單擊【添加】按鈕,即將添加學(xué)生基本信息。6.在代碼編輯器中,將鼠標(biāo)指針停留在“Me.dgv區(qū)域”類變量處。7.單擊調(diào)試工具欄上的【逐過(guò)程】按鈕執(zhí)行下一條程序語(yǔ)句。8.繼續(xù)單擊【逐過(guò)程】按鈕,查看If語(yǔ)句中條件的值和執(zhí)行條件分支過(guò)程。9.單擊調(diào)試工具欄上的【停止調(diào)試】按鈕終止調(diào)試。2023/2/6139.3使用中斷模式調(diào)試程序9.3.3使用命令窗口假設(shè)在學(xué)生成績(jī)管理系統(tǒng)的學(xué)生基本信息數(shù)據(jù)的“添加”代碼調(diào)試過(guò)程中,同時(shí)想調(diào)試“修改”操作代碼,只需在【命令窗口】的立即模式下輸入“bAdd=False”即可。
2023/2/6149.4運(yùn)行錯(cuò)誤處理
在學(xué)生成績(jī)管理系統(tǒng)中的“frm主控”類中的frm主控_Load()方法
,現(xiàn)把其中的數(shù)據(jù)庫(kù)文件名“scores.mdb”改成“score.mdb”,然后運(yùn)行程序。由于當(dāng)前運(yùn)行目錄下找不到“score.mdb”文件,于是VB.NET產(chǎn)生一個(gè)顯示運(yùn)行錯(cuò)誤信息的消息框,并且中斷程序執(zhí)行
錯(cuò)誤的原因和位置非常明確。這類錯(cuò)誤稱為運(yùn)行錯(cuò)誤,也叫異常。一般有兩種機(jī)制來(lái)處理這種運(yùn)行錯(cuò)誤:
1.用Try…Catch…EndTry結(jié)構(gòu)化錯(cuò)誤處理程序進(jìn)行處理,并能使程序恢復(fù)正常,這種處理稱為容錯(cuò)處理。
2.使用驗(yàn)證技術(shù),在某段程序代碼執(zhí)行前先進(jìn)行確認(rèn),避免錯(cuò)誤發(fā)生,這種處理稱為防錯(cuò)編程。2023/2/6159.4運(yùn)行錯(cuò)誤處理9.4.1容錯(cuò)處理
容錯(cuò)處理就是“允許發(fā)生錯(cuò)誤,事后處理”。統(tǒng)一采用結(jié)構(gòu)化錯(cuò)誤處理的語(yǔ)法結(jié)構(gòu):Try'可能產(chǎn)生運(yùn)行錯(cuò)誤的代碼Catch'當(dāng)運(yùn)行錯(cuò)誤發(fā)生時(shí)就會(huì)被執(zhí)行的代碼Finally'不論錯(cuò)誤是否會(huì)發(fā)生都會(huì)被執(zhí)行的代碼(可選)End
Try其中,Try、Catch和EndTry是必不可少的關(guān)鍵字,而Finally關(guān)鍵字和它后面的代碼是可選的,在需要釋放資源時(shí)特別有用。當(dāng)Try快中的代碼發(fā)生運(yùn)行錯(cuò)誤就會(huì)拋出異常,Catch塊中的代碼處理異常。
2023/2/6179.5控制用戶輸入
是有效的防錯(cuò)手段
常言道
“病從口入”、“以預(yù)防為主”。任何應(yīng)用系統(tǒng)都是先接受數(shù)據(jù)輸入,然后進(jìn)行處理,最后得到希望的輸出。若能保證輸入的合理性,則必將大大地減少錯(cuò)誤出現(xiàn)的概率。
1.
學(xué)號(hào)輸入根據(jù)實(shí)際需求,學(xué)生的學(xué)號(hào)由7位數(shù)字組成,所以應(yīng)該通過(guò)frm學(xué)生
對(duì)象中的學(xué)號(hào)輸入控件進(jìn)行控制。制作一個(gè)繼承自TextBox控件的IntBox整型控件完成這項(xiàng)任務(wù)。代碼參見:第七步(2):錯(cuò)誤處理。
2.
數(shù)值輸入將字符串存入數(shù)據(jù)庫(kù)的數(shù)值字段時(shí)會(huì)出錯(cuò)。使用IntBox整型控件進(jìn)行控制,只接受正整數(shù)。制作一個(gè)繼承自IntBox控件的DecimalBox整型控件,只能接受正的浮點(diǎn)數(shù)。
2023/2/6189.5控制用戶輸入
是有效的防錯(cuò)手段
3.
字符串輸入更新字符串類型的數(shù)據(jù)庫(kù)字段時(shí)要控制輸入的字符串長(zhǎng)度不要超過(guò)相應(yīng)數(shù)據(jù)表字段的長(zhǎng)度,這已經(jīng)在frm增改
的ShowDialog方法中對(duì)有關(guān)控件的Maxlength的設(shè)置進(jìn)行了控制。
4.
日期輸入保證只接受合理日期,通過(guò).NET的DateTimePicker控件進(jìn)行控制。
5.
布爾值輸入保證只接受合理布爾值,通過(guò).NET的CheckBox控件進(jìn)行控制。2023/2/6199.7容錯(cuò)和防錯(cuò)的選擇一般而言,每一類數(shù)據(jù)都有必須唯一的關(guān)鍵字段。比如:學(xué)生數(shù)據(jù)中學(xué)號(hào)
要唯一,操作員數(shù)據(jù)中工號(hào)
要唯一,學(xué)年數(shù)據(jù)中學(xué)年
要唯一,課程數(shù)據(jù)中課程
要唯一,成績(jī)數(shù)據(jù)中學(xué)年
和課程
的組合要唯一,成績(jī)比例數(shù)據(jù)中學(xué)年
和課程
的組合要唯一,教師數(shù)據(jù)中工號(hào)
要唯一。
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 常用藥品使用指南
- 《GB-T 37680-2019農(nóng)業(yè)生產(chǎn)資料供應(yīng)服務(wù) 農(nóng)資配送服務(wù)質(zhì)量要求》專題研究報(bào)告
- 《GBT 29814-2013在線分析器系統(tǒng)的設(shè)計(jì)和安裝指南》專題研究報(bào)告
- 《GBT 34831-2017 納米技術(shù) 貴金屬納米顆粒電子顯微鏡成像 高角環(huán)形暗場(chǎng)法》專題研究報(bào)告
- 《AQ 6210-2007煤礦井下作業(yè)人員管理系統(tǒng)通 用技術(shù)條件》專題研究報(bào)告
- 《AQ 1112-2014煤礦在用窄軌車輛連接鏈檢驗(yàn)規(guī)范》專題研究報(bào)告
- 企業(yè)私域流量池信息運(yùn)營(yíng)協(xié)議
- 中式面點(diǎn)師崗位招聘考試試卷及答案
- 2025年CPA真題及答案解析
- 2025年城管協(xié)員考試試題及答案
- STM32理論課件教學(xué)課件
- 交通運(yùn)輸行業(yè)數(shù)據(jù)集建設(shè)實(shí)施方案
- 測(cè)繪安全培訓(xùn)課件圖片
- 民族團(tuán)結(jié)教學(xué)課件
- 嚴(yán)格電話使用管理辦法
- (2025年標(biāo)準(zhǔn))簡(jiǎn)單砌石墻協(xié)議書
- (2025年標(biāo)準(zhǔn))鐵路實(shí)習(xí)協(xié)議書
- 重慶市涪陵榨菜集團(tuán)股份有限公司營(yíng)運(yùn)能力分析
- 與4s店二手車合作合同協(xié)議
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(kù)(含答案)
- 國(guó)家開放大學(xué)《公共政策概論》形考任務(wù)1-4答案
評(píng)論
0/150
提交評(píng)論