看如下代码:
var
 temp:integer;
begin
 try
   temp:=strtoint(edit1.text);
   edit2.text:=inttostr(temp);
 except
 showmessage('输入错误.');
 end;
end;
代码本身没什么用,我是想用来实验try和except语句的,但运行程序,我输入232.a1,会得出232.a1不是一个整形数的错误提示.请问是为什么啊?我就是要用try和except语句来检测一系列输入数据的正确性,
请大家帮忙一下.

解决方案 »

  1.   

    try和except语句 
    在执行exe文件才行,
    编译时不执行except语句
      

  2.   

    我从edit1里输入数据难道不是已经生成exe文件????请具体说明白。谢谢
      

  3.   

    我从edit1里输入数据难道不是已经生成exe文件????请具体说明白。谢谢
    -- 直接执行exe文件,不要执行源文件
       编译环境下异常会直接被抛出
      

  4.   

    谁说不执行except了?在报了异常之后再点一下运行看看。最近怎么净看到这样的回帖……
    Delphi在调试状态下会截获所有的异常并报出,这是为了方便调试者准确的得知异常的类型和抛出地点。如果你执行编译出的Exe将不会有调试器附加的这些异常报告。
    一般来说异常应该用到真正异常——也就是说不在正常的程序逻辑之中的情况,象楼主提到的这种情况,完全可以自己写个函数判断一下。
    如果真的要这样用到异常,又觉得调试状态的报告太烦,可以在Tools-Debugger options-language exceptions中去掉stop on delphi exceptions选项,这样就不会报出这些异常了。
    也可以更加精细的控制,在忽略Exception列表中增加需要忽略的异常类型,比如这里就可以加入EConvertError,这样调试器就不会报出这个类型的异常。
      

  5.   

    当然了.在你的
       temp:=strtoint(edit1.text);
       edit2.text:=inttostr(temp);
    里面已经执行了这两条语句,并没有错误,所以当然不会提示了.
      

  6.   

    就是一楼说的,你去运行.exe文件就可以了。不要在程序中运行。