如果你运行生成的.exe文件,可能就不会出现该问题。

解决方案 »

  1.   

    不该用finally,它不会捕捉异常的,它只是保证无论有没有异常都执行善后代码。
    应该用except。
      

  2.   

    finally只是用来最后执行的代码,不管有没有异常它总是执行,但它并未处理异常,此处常用来释放资源!当执行完后,异常还存在,然后执行异常处理语句,如果程序中未处理异常,会用系统未认的处理程序处理!
    except是专门用来处理异常的,但当没有触发异常时,它不执行!
    执行完后,异常消失,除非在此重新触发异常!
      

  3.   

    try 
      ...
    except
      on Exception do
        begin
          raise Exception.Create('你的错误提示');//可以根据不同的错误类型定制不同的错误信息。
        end;
    end;
      

  4.   

    try 
      ...
    except
      on e:Exception do
        begin
          raise Exception.Create(e.message);
        end;
    end;