procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
try
 i:=0;
 i:=round(1/i);
except
 showmessage('Div Zero!');
end;
end;它直接弹出错误框,而不是执行showmessage('Div Zero!');为什么呀

解决方案 »

  1.   

    你要用Raise抛出一个异常,然后才能进行SEH处理
      

  2.   

    try
      except on e:Exception do
    ShowMessage(e.Message);
      end;
    Except只有在on do语句中才能生效
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject); 
    var i:integer; 
    begin 
    try 
    i:=0; 
    i:=round(1/i); 
    except 
      on E:Ezerodivide do
      showmessage('Div Zero!'); 
    end; 
    end; 
      

  4.   

    因为后面没用到i,代码都被优化掉了,所以相当于只有try...except而已
      

  5.   

    在IDE环境中运行是这样的,如果你单独运行生成的EXE文件就没有问题。