版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序调试与异常处理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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度大棚农产品电子商务合同3篇
- 二零二四年度租赁期满设备回收合同
- 智慧城市2024年度灯杆新能源充电合同
- 矿山开发施工合同范例
- 消防制式合同范例
- 经理聘请书合同模板
- 2024年学会感恩国旗下讲话稿(5篇)
- 日间助餐合同范例
- 家装拆除墙体合同范例
- 2024年饲料销售工作计划例文(4篇)
- 第九课-鸡蛋四块一斤课件
- 大学英语四级真题阅读练习10套(附参考答案)
- 部编版九年级语文上册《怀疑与学问》评课稿
- 内审员实战培训教材
- 人机料法环的分析PPT
- 蛋白质相互作用技术研究的几种技术
- 垫江县国企招聘考试真题及答案
- 数字媒体艺术设计-课件
- 【基于近五年数据的云南嘉华食品实业财务报表分析15000字】
- 金属材料的塑性变形
- 车间管理看板模板
评论
0/150
提交评论