try
  StrToInt(str);
except 
on E...... do
  application.messagebox(..)
比如说Str不是一个整数字符串,出现异常后捕获不了!!

解决方案 »

  1.   

    在调试状态, delphi是会把异常抛出的
    你只要编译好后, 直接运行exe就可以捕捉异常了
      

  2.   

    可能是你这个E......异常写错了,不是StrtoInt转换错误的异常,导致捕获不了。
    你可以把E......写成 Exception 就什么异常都捕获了,或者on E...... do这句不写也可以捕获了。
      

  3.   

    try
      StrToInt(str);
    except 
      application.messagebox(..)
    end
     
    ok
      

  4.   

    不可能捕获不到的,是你的 On E.... do 有误!
      

  5.   

    try 
      strtoint(str);
    except
      showmessage('error');
    end;这样写应该就没错了,在编译状态下这个会先出现编译提示的,你再运行一次,就会出现你设置的异常提示。或者脱离编译状态运行可执行文件,就可以了
      

  6.   

    try
      StrToInt(str);
    except 
      application.messagebox(..)
    end
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str: string;
    begin
      Str := '33.2t';
      try
        StrToInt(Str);
      except
        on E: Exception do ShowMessage(E.Message);
      end;
    end;