建立个程序 代码如下
program Project1;uses
  windows,
 // SysUtils,
  Messages;var
  I:DWORD;
begin
  try
    I:=dword(Pointer($00000)^);
  except
    MessageBox(0,PChar('error'),PChar('error'),0);
  end;  MessageBox(i,PChar('ok'),PChar('ok'),0);
end.
读到的是空指针,一定出错,不过 在去掉SysUtils单元后,错误处理机制失效! 不知道为什么,错误处理机制调用了SysUtils哪些函数或者定义??? 能否不用SysUtils也能成功处理错误呢?  高人请解答!

解决方案 »

  1.   


    program Project1;uses
      windows,
      SysUtils,
      Messages;var
      I:DWORD;
    begin
      try
        I:=dword(Pointer($00000)^);
      except
        MessageBox(0,PChar('error'),PChar('error'),0);
      end;  MessageBox(i,PChar('ok'),PChar('ok'),0);
    end.
      

  2.   

    SysUtils有初始化进程,包括异常处理的代码,如果你不去截获系统异常,就报不出来。
      

  3.   

    有高人能从SysUtils分离出错误处理机制需要的东西吗