相关疑难解决方法(0)

为什么要检查对象方法中的Assigned(self)?

我正在查看一些代码(Delphi 7),以下检查位于特定对象的每个方法调用的顶部:

if not Assigned(self) then
  raise Exception.CreateRes(@sAbstractError);

  { Real code for this method}
Run Code Online (Sandbox Code Playgroud)

我想这会阻止我尝试在空对象指针上调用方法.但是,一旦我尝试访问该情况下的成员数据,我会得到一个例外,对吗?

这是我以前从未见过的某种标准吗?有问题的对象来自TPersistent.

delphi delphi-7

8
推荐指数
2
解决办法
1368
查看次数

是否可以保证访问nil指针会引发异常?

Remy Lebeau 表示:“不能保证访问nil指针会引发异常。这是未定义的行为。任何事情都可能发生。可能会引发异常,或者您可能只是读取垃圾,或者可能会浪费内存,或者.. ”。怎么来的?在哪种情况下,访问NIL对象的方法不会引发AV并导致内存损坏?

// (Obj is any kind of object. Let's say TStringList) 
Obj = nil;
Obj.LoadFromFile();
Run Code Online (Sandbox Code Playgroud)

delphi

1
推荐指数
1
解决办法
125
查看次数

标签 统计

delphi ×2

delphi-7 ×1