版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程式調試與異常處理8.1.1程式錯誤及發現時刻語法錯違反語法規範的錯誤稱為語法錯,這類錯誤通常在編譯時發現。語義錯在語義上存在錯誤,稱為語義錯。邏輯錯運行結果卻與期望值不符,這類錯誤稱為邏輯錯。8.1.2發現及處理錯誤發現錯誤【例8.1】發現除數為0錯誤。編譯錯var
i:integer;i:=2div0;運行錯
var
i,j:integer;i:=0;j:=2divi;邏輯錯
var
x:real;x:=2/0;【例8.2】發現整數類型數據溢出錯誤。編譯錯var
j:shortint;month:1..12;j:=127+1;month:=13;運行錯
var
i,j:shortint;i:=127;j:=i+1;編譯時強制進行範圍檢查{$R+} //編譯指令,打開範圍檢查語句序列;{$R-} //編譯指令,關閉範圍檢查2.處理錯誤【例8.3】數組下標越界問題討論。下標變數聲明為子界類型下標變數聲明為整數類型強制進行範圍檢查正確方法
fori:=low(table)tohigh(table)dowrite(table[i]:5);8.2程式調試技術8.2.1執行方式與調試介面8.2.2調試過程8.2.1執行方式與調試介面程式的3種執行方式正常執行,執行Run|Run菜單命令單步執行StepInto,跟蹤進入過程/函數內部。StepOver,將過程/函數調用作為一條語句,一次執行完。分段執行RuntoCursor,運行至游標所在行。設置中斷點執行。RunUntilReturn,執行完過程/函數體餘下的語句序列,返回到調用過程/函數的語句處。2.調試介面進入調試狀態調試介面組成LocalVariables子窗口WatchList子窗口Run菜單8.2.2調試過程選擇需要調試的程式段設置/清除中斷點跟蹤運行程式逐條語句地執行程式分段運行查看變數值的變化情況WatchList窗口中添加變數在WatchList窗口中操縱變數【例8.4】使用調試技術發現程式邏輯錯誤。根源程式及問題使用調試技術試圖發現程式中的邏輯錯改正錯誤後再次運行體會多種單步運行方式的差別在LocalVariables子窗口中查看變數值的動態變化情況在WatchList子窗口中查看變數值的變化情況8.3異常處理機制8.3.1異常處理的概念8.3.2異常回應8.3.3異常保護8.3.1異常處理的概念面向過程語言錯誤處理方式的缺陷面向對象語言異常處理的思想Delphi異常處理機制異常類異常處理語句程式對錯誤與異常的三種處理方式程式不能處理的錯誤程式應避免而不捕獲的異常必須捕獲的異常8.3.2異常回應異常回應語句try
語句序列; //存在潛在異常excepton識別字:異常類do語句1; //回應特定異常類
on識別字:異常類do語句2;else
語句序列; //回應其他異常類end;【例8.5】除數為0錯的異常處理。【例8.6】類型轉換錯的異常處理。8.3.3異常保護異常保護語句try
語句序列1; //有潛在異常的語句finally
語句序列2;end;需要保護的資源【例8.7】打開檔操作錯誤的異常處理。8.4異常類8.4.1Exception類8.4.2運行時異常8.4.3對象異常類8.4.4組件異常類8.4.1Exception類typeException=class(TObject)private
FMessage:string;
FHelpContext:integer;publicconstructorCreate(const
Msg:string);
……destructorDestroy;override;propertyHelpContext:integerreadFHelpContextwriteFHelpContext;propertyMessage:stringreadFMessagewriteFMessage;end;8.4.2運行時異常運行時異常類的層次結構8.4.2運行時異常外部錯誤異常類EExternal整數異常類EIntError【例8.8】子界越界、短整型越界的異常處理。實數異常類EMathError類型匹配異常類EInvalidCast類型轉換異常類EConvertErrorI/O異常類EInOutError堆異常類EHeapExceptionEOutOfMemoryEInvalidPointer8.4.3對象異常類流異常類EStreamError列印異常類EPrinter圖形異常類EInvalidGraphic和EInvalidGraphicOperation無效的圖形檔異常EInvalidGraphic圖形非法操作異常EInvalidGraphicOperation字串序列異常EStringListError和EListErrorEStringListError異常EListError異常8.4.4組件異常類通用組件異常類非法操作異常EInva
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机模线样板移型工岗位理论考核试卷含答案
- 电机检修工岗前安全培训考核试卷含答案
- 保险保全员技能实操水平考核试卷含答案
- 2026年城市燃气生产和供应行业洞察报告及未来五至十年发展趋势报告
- 沪教版2025-2026初中物理期末九年级卷
- 2025-2026华东师大五年级语文下册期末卷
- 山东版2025初二语文期末测试卷
- 2026年七年级上册第3章 代数式 第9套 拓展拔高
- 2026年医学医学影像技术学核医学试题及答案
- 2026年医学美学美容技术试题及答案
- 2026年急诊科专科护理内涵建设与发展课件
- 2026统编版八年级历史上册全册问答版知识梳理
- 雨课堂学堂在线学堂云《导弹总体设计导论(国防科技)》单元测试考核答案
- 2025-2026学年浙江七彩阳光新高考研究联盟高一上学期期中考英语试题含答案
- 《产品结构设计与实践》 课件汇 第0-4章 绪论、空调遥控器结构设计-果盘一体化结构设计
- 核酸是遗传信息的携带者说课课件-高一上学期生物人教版必修1
- 2025年中国真空杯行业市场前景预测及投资价值评估分析报告
- 水利普法宣传课件
- 江苏省徐州市2024-2025学年七年级上学期期中考试数学试卷(含答案)
- 国网公司选拔专家人才考试题目含答案
- 长期卧床如何预防压疮
评论
0/150
提交评论