版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序调试与异常处理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宁夏农垦酒业有限公司社会招聘3人备考题库附答案详解(综合题)
- 2026安徽蚌埠市固镇县仲兴镇和任桥镇选聘村级后备干部22人备考题库含答案详解(模拟题)
- 2026渤海银行校园招聘备考题库含答案详解(a卷)
- 2026中国安能一局辽宁公司校园招聘30人备考题库含答案详解(研优卷)
- 2026福建福州市连江县台胞服务中心招聘1人备考题库含答案详解(研优卷)
- 2026甘肃庆阳紫坊畔乡堡子山村、高庄村文书招聘2人备考题库附答案详解(预热题)
- 2026山东济宁市兖州区城市社区专职工作者招聘50人备考题库含答案详解(培优a卷)
- 2026山东济南市天桥区教育和体育局所属学校引进骨干教师30人备考题库及一套答案详解
- 2026渤海银行校园招聘备考题库及完整答案详解
- 2026贵州云岩区农业农村局招聘编外聘用人员备考题库含答案详解(培优a卷)
- 财务采购制度及流程
- 长城瓦雨棚施工方案
- 水利水电工程标准施工招标文件技术标准和要求2025年版
- 压铸模具管理制度规范
- 噪声污染防治法培训课件
- 2025年卫生健康行业网络与数据安全技能大赛备赛试题附答案
- 2026年计算机一级(网络安全素质教育)自测试题及答案
- 湖湘红色文化故事
- 公司内部审计制度及操作流程
- 自闭儿童的感统训练教案
- 老年认知障碍非药物干预整合方案
评论
0/150
提交评论