有深入研究异常处理的吗try except

有深入研究错误处理的吗try except
建立个程序 代码如下
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也能成功处理错误呢? 高人请解答!


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