sidebar 隐藏/显示

柳阳

五味杂陈
    <<  《程序员修炼之道》 第四章 注重实效的偏执 | 首 页 | 《程序员修炼之道》 第五章 弯曲或折断  >>
  • 2009-08-17

    delphi 中“断言”的使用 - [技术交流]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://liuyangsl.blogbus.com/logs/44384729.html

           像c#,java这样的语言编译后不是二进制代码,而是可以解释执行的一种东西,这样在我们调试的时候,如果出错了,报的错可以显示错误所在的堆栈,方法,行号(当然,你release编译或者把pdb调试文件去了就没行号了),而Delphi就不行了。如果你在异常处理里想把异常出现的堆栈,方法和行号输出出来简直是不可能的。但有个变通的方法,就是使用断言,断言在调试状态下可以指出错误行号。我们要先为断言失败事件挂接一个默认执行方法,如下。


    procedure AssertErrorHandler(const Message, Filename: string;  LineNumber: Integer; ErrorAddr: Pointer);
    var
      S: String;
    begin
      S := Format('%s (%s, line %d, address $%x)',
        [Message, Filename, LineNumber, Pred(Integer(ErrorAddr))]);
      OutputDebugString(PChar(S));
    end;
     
    initialization
        AssertErrorProc := @AssertErrorHandler 


           然后你就可以使用断言了,  Assert(pam1 <> nil,'参数为空');比如你的方法要传入一个pam1的参数,如果传进来的参数未定义,这个断言就会失败,从而触发断言失败事件,然后你就可以用debugview看到断言失败的行号了。
      使用这个方法的不足就是,你只能获取可预期异常的信息,对未知异常无法使用了。


    历史上的今天:

    《程序员修炼之道》 第四章 注重实效的偏执 2009-08-17

    随机文章:

    delphi 线程的结束方式 2009-09-24
    《Linux下C语言编程入门》第五章 信号处理 2008-11-08
    《软件需求》第十七章 管理变更请求 2008-10-23
    《软件需求》第十一章 软件的质量属性 2008-10-16
    《软件需求》第一章 基本的软件需求 2008-10-11

    收藏到:Del.icio.us




    Tag:delphi
    引用地址:
    阳 发表于09:39:08 | 编辑 | 继续话题 | 转发 | 分享 0
text size: - reset +

搜索

最新日志

  • 囧驼
  • delphi 线程的结束方式
  • 《程序员修炼之道》 第八章 注重实效的项目
  • 《程序员修炼之道》 第七章 在项目开始之前
  • 《程序员修炼之道》 第六章 当你编码时
  • 《程序员修炼之道》 第五章 弯曲或折断
  • delphi 中“断言”的使用
  • 《程序员修炼之道》 第四章 注重实效的偏执
  • 《程序员修炼之道》 第三章 基本工具
  • 《程序员修炼之道》 第二章 注重实效的途径
全部日志>>

最新评论

  • sunlight2009:hi,你好。我是《程序员修炼之道》的编辑白爱萍,刚拜读了...
  • leezen:嗯~
  • xu:有点意思
  • 来去自如:难道做君子就不 应该吃饱睡好吗? 真乃滑天下之大稽啊。...
  • sueyi:我也心动了...
  • 维摩:歇会
  • 菲:来替你拔拔草
  • 菲:又是伤感的话题,想留言,却不知是回应你的伤感,还是劝你开...
  • leezen:瓦!
  • holimion:还是想要blackberry...
  • RSS 什么是RSS?
    用IM提醒我内容更新
    订阅到QQ邮箱
    订阅到鲜果阅读器
    订阅到Google阅读器
    订阅到抓虾阅读器
  • 《城客》第四期:创意之城
    博客大巴
    博客大巴使用指南
    博客大巴模板中心
    免费注册博客大巴
    一键博客搬家工具
    中文互动杂志城客
Copyright © 2002-2009 BlogBus.com, All Rights Reserved. 博客大巴 版权所有
博客大巴模板设计:从容之美 | 作者: iZ
    iCity YOHOcity