• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi中断言Assert用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

procedure Assert(expr : Boolean [; const msg: string]);

用法:   Assert(表达式,[显示信息]);

 

如果为假, assert会产生一个EAssertionFailed异常,显示信息为:

Debugger Exception Notification

Project  Project2.exe raised exception  class EAssertionFailed with Message'AAA

(C:/Users/tangjianbao/Desktop/test/Project2.dpr line 23)'. Process stopped. use Step or Run to Contine.


 当你不想再使用这些检查时,可以使用 {$ASSERTIONS OFF/ON } 或 {$C-} 编译指令. 
要想使Assert在整个项目中失效,   关闭Project Options | Compiler | Assertion 选项。

 

 

Delphi7 Help  Code: (将下列代码拷贝 到 ConSole 可以直接运行,调试一下,体会会更深刻)

 

 

 

program Project2;

{$APPTYPE CONSOLE}

{ Defining OLDSTYLE for the compilation allows old-style
  runtime error handling to occur rather than the new
  exception-based method. If the old style is used, then
  the user-supplied string is not displayed. }

{$IFNDEF OLDSTYLE}
uses
  SysUtils;
{$ENDIF}

type
  TStorage = class(TObject)
    FData: string;
    property Data: string read FData write FData;
  end;

procedure ModifyStorage(AStorage: TStorage; const s: string);
begin
  Assert(AStorage <> nil, 'AAA');
  AStorage.Data := s;
end;

var
  Storage: TStorage;
begin
  Storage := TStorage.Create;
  try
    ModifyStorage(Storage, 'Hello world');
  finally
    Storage.Free;
  end;

  // The following call is buggy and triggers the Assert
  ModifyStorage(nil, 'Ooops');
 
end.

 

http://blog.csdn.net/tjb_1216/article/details/5601267


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在Delphi程序中应用IE浏览器控件发布时间:2022-07-18
下一篇:
Delphi映射模式实验发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap