- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《 Delphi 程序设计》 第1章 Delphi 2005简介 第2章 Object Pascal语言基础 第3章 Windows应用程序界面设计 第4章 菜单、工具栏和对话框 第5章 使用复杂组件 第6章 面向对象的核心特性 第7章 多文档界面设计 第8章 程序调试与异常处理 第9章 文件操作和流 第10章 多媒体应用设计 第11章 数据库应用设计 第12章 综合应用设计 第8章 程序调试与异常处理 8.1 程序错误及处理 8.2 程序调试技术 8.3 异常处理机制 8.4 异常类 8.1 程序错误及处理 8.1.1 程序错误及发现时刻 8.1.2 发现及处理错误 8.1.1 程序错误及发现时刻 语法错 违反语法规范的错误称为语法错,这类错误通常在编译时发现。 语义错 在语义上存在错误,称为语义错。 逻辑错 运行结果却与期望值不符,这类错误称为逻辑错。 8.1.2 发现及处理错误 发现错误 【例8.1】 发现除数为0错误。 编译错 var i:integer; i:=2 div 0; 运行错 var i,j:integer; i:=0; j:=2 div i; 逻辑错 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】 数组下标越界问题讨论。 下标变量声明为子界类型 下标变量声明为整数类型 强制进行范围检查 正确方法 for i:=low(table) to high(table) do write(table[i]:5); 8.2 程序调试技术 8.2.1 执行方式与调试界面 8.2.2 调试过程 8.2.1 执行方式与调试界面 程序的3种执行方式 正常执行,执行Run | Run菜单命令 单步执行 Step Into,跟踪进入过程/函数内部。 Step Over,将过程/函数调用作为一条语句,一次执行完。 分段执行 Run to Cursor,运行至光标所在行。 设置断点执行。 Run Until Return,执行完过程/函数体余下的语句序列,返回到调用过程/函数的语句处。 2. 调试界面 进入调试状态 调试界面组成 Local Variables子窗口 Watch List子窗口 Run菜单 8.2.2 调试过程 选择需要调试的程序段 设置/清除断点 跟踪运行 程序逐条语句地执行 程序分段运行 查看变量值的变化情况 Watch List窗口中添加变量 在Watch List窗口中操纵变量 【例8.4】 使用调试技术发现程序逻辑错误。 源程序及问题 使用调试技术试图发现程序中的逻辑错 改正错误后再次运行 体会多种单步运行方式的差别 在Local Variables子窗口中查看变量值的动态变化情况 在Watch List子窗口中查看变量值的变化情况 8.3 异常处理机制 8.3.1 异常处理的概念 8.3.2 异常响应 8.3.3 异常保护 8.3.1 异常处理的概念 面向过程语言错误处理方式的缺陷 面向对象语言异常处理的思想 Delphi异常处理机制 异常类 异常处理语句 程序对错误与异常的三种处理方式 程序不能处理的错误 程序应避免而不捕获的异常 必须捕获的异常 8.3.2 异常响应 异常响应语句 try 语句序列; //存在潜在异常 except on 标识符: 异常类 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.1 Exception类 8.4.2 运行时异常 8.4.3 对象异常类 8.4.4 组件异常类 8.4.1 Exception类 type
文档评论(0)