if (edit1.Text <> '') then
  try
  begin
    showMessage(dateToStr(strToDate(edit1.Text)));
    end;
  except
  //  on EconvertError do
      showMessage('EconvertError');
 // else
  //  showMessage('otherError');
  end;
按照书上说明,在try段出现异常的话,应该转入except段执行,但是我的为什么不可以?我想把
edit1中的内容转成时间格式,如果出现格式类型不对的异常就showMessage('EconvertError');
但是结果不是我想要的那样,如果出现输入类型非yyyy-mm-dd的格式程序就直接终止,提示'EconvertError'异常,我想把异常拦截下来,不让程序终止,而是提示输入正确格式。在下初学delphi,请多包涵,ps:我搜索过,但是没找到结果。

解决方案 »

  1.   

    啊哈,我知道了,上述代码是可以实现我的要求的,在编译执行过程中会出现异常,但是执行.exe程序的时候,就可以拦截的,真是奇怪,为什么在编译时候就直接终止程序呢?
      

  2.   

    就是这样的,异常在编译时出错是会提示的.
    所以要想看到它最终异常处理的结果,直接运行exe程序就可以了
      

  3.   

    在调试的时候异常会提示错误的它是steepbysteep
      

  4.   

    tools-Debugger options-language Exceptions
    Stop on Delphi Exception前面的勾去掉