037-错误信息与异常.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
037-错误信息与异常.pdf

下载 第六部分 附 录 附录A 错误信息与异常 一个良好的软件与一个伟大的软件的区别之一是,尽管良好的软件能够运行得很好,但伟大的软 件既能运行得很好,又能失败得很好。对于 D e l p h i程序来说,运行期错误是当作异常来报告和处理的。 这样,程序就有机会来处理错误 (例如备份或尝试另一种操作 ) ,至少也能体面地退出(释放已分配的内 存、关闭文件和显示错误信息 ) ,而不是使系统崩溃。大部分异常都能在程序内部得到处理,只有少数 几种运行期错误会导致系统停机。 本附录列出了常见的错误信息,并且提供了解释来帮助你找到导致错误的原因。由于加到 D e l p h i 环境中的每一个组件都有自己的一套错误信息,所以,本附录不可能很完整。我们主要讨论比较难理 解的错误信息。 A.1 处理层和安全层 每个D e l p h i程序有两个默认的异常处理过程,其中一个建立在另一个之下。 V C L在每个V C L对象 的窗口过程的入口点外围包上一个处理过程。如果当程序正在响应一个 Wi n d o w s 消息(其实程序 9 9 % 的时间就花在处理消息上 ) 时发生异常,并且程序本身和 V C L对象没有处理这个异常,这个异常就会 被传递给默认的异常处理过程,即窗口过程。例如, A p p l i c a t i o n . H a n d l e E x c e p t i o n 就是一个默认的异 常处理过程,它将以消息框的形式显示异常实例的错误信息。这样,程序就能继续运行和处理其他消 息。 最底层的异常处理过程位于 Delphi RT L 的核心。有时候,一个异常发生在消息处理的环境之外, 例如,程序正在启动或关闭,或者V C L 的默认异常处理过程正在执行,这些情况将导致异常无法处理。 此时,异常将被传递给 RT L 的默认异常处理过程。到了这个层次,不再需要考虑恢复的问题,也不再 有消息循环。RT L 的默认异常处理过程将显示异常的错误信息,然后终止程序的运行。 除了显示异常的错误信息, RT L默认的异常处理过程还会报告触发异常的代码地址 (十六进制) 。 在D e l p h i 的I D E 中使用Search | Find Error命令,然后输入上述地址,D e l p h i就会在源代码中定位该地址 所对应的地方。 如果你看到屏幕上显示“Address not Found ”,这可能是因为错误发生在另一个模块中。例如,通 过指针改写了另一个应用程序的内存。不过,也可能是因为编译时没有包含行号信息或者没有找到源 代码。所以,要仔细检查Project Options对话框的C o m p i l e r页上选中了哪一些选项,保证编译时包含了 调试信息。另外,还要保证D i r e c t o r i e s / C o n d i t i o n a l s页上的Search Path框正确指定了源代码的有哪些信誉好的足球投注网站路径。 如果I D E还是无法定位源代码的话,可能需要使用P r o j e c t菜单上的Build All命令把整个项目编译一遍。 A.2 运行期错误 这一节指导你在遇到异常或 Win32 API 失败时该怎么做。下述错误很少是致命的,但你还是应当 知道处理它们。 1 2 3 0 第六部分 附 录 下载 A.2.1 异常 这一节描述一些由 V C L 组件触发的异常。记住,自定义的组件以及自己的代码也可以定义异常 类。 下面列出的几个异常类说明了它们之间的关系。其中,有一个是通用的异常类,代表整个异常家 族。其他的异常类都是从这个通用的异常类继承下来的。如果要以同样的方式处理所有的异常,应当 在E x c e p t 结构中以通用异常类作为判断条件。如果只是要处理某个特定的异常,应当在 E x c e p t结构中 以特定异常类作为判断条件。 在下面的列表中,我们根据是否继承于同一个祖先类来把相关的异常类放在一起。 E x c e p t i o n—这是所有异常类的祖先。尽管用这个异常类可以处理所有

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档