try
    i:=i/0;
  except
    on EZeroDivide do
     showmessage('不能除以0');
  end;为什么程序还是会出现他默认的错误提示.而不是显示我的提示

解决方案 »

  1.   

    try
        i:=i/0;
      except
        //on EZeroDivide do
         showmessage('不能除以0');
      end;
      

  2.   

    delphi自身有防除0设置,忘了在哪了
      

  3.   

    我在Delphi7中会出现默认的错误提示.而不是显示我的提示,而在Delphi6中却没有反映,连异常都不会发生有加/没加on EZeroDivide do都是这样请指教???
      

  4.   

    你们所说的都没有抓住重点,并不是说Delphi不去处理这个异常,而以Delphi在编译程序的时候会自动地去检查他的下一行,当他发现后面已经没有可用的代码行,他就会忽略执行,因为这个执行结果对于他来讲是一点也没有用处的,但是当然这不是我们所需要的结果了,所以我们只需要稍微增加一行代码就行了。请看下面
    var
      i:double
    begin
      try
        i:=i/0;
        caption:=floattostr(i);
      except
        on EZeroDivide do
          showmessage('不能除以0');
      end;
    end;
      

  5.   

    try
      ...
    except
      on e:Exception do showmessage('不能队以0'+e.message);
    end;
      

  6.   

    我也同意kwbin(Rainey)的說法
    這也許就是delphi所謂的代碼優化吧