procedure TForm1.Button1Click(Sender: TObject);
var
  sum,number:integer;begin
  sum:=10;
  number:=0;
  try
    ShowMessage(IntToStr(sum div number));
  except
    On EDivByZero Do
       begin
          number:=2;
          ShowMessage(IntToStr(sum div number));
       end;
    else
    ShowMessage('Number=0');
  end;end;异常处理为什么不在出错时就执行? 要再编译运行才执行?

解决方案 »

  1.   

    begin
      sum:=10;
      number:=0;
      try
        ShowMessage(IntToStr(sum div number));
      except
        on EDivByZero Do
          try
           begin
              number:=2;
              ShowMessage(IntToStr(sum div number));
           end;
         except
        ShowMessage('Number=0');
        end;
      end;end;
      

  2.   

    异常处量在调试时还是会显示异常的只有在进行EXE的时候,难只会显示你自己的异常处理!
      

  3.   

    調試時會出現系統的提示,但在運行.EXE時則會執行你所寫的捕捉異常處理
      

  4.   

    谢谢大家。归纳如下:
    1.在编译环境下运行,会显示出错信息,此时程序并未返回,再按run则会
      出现异常处理。
    2.到项目的文件目录执行exe程度则直接出现异常处理,无出错信息。