程序代码:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  try
    StrToDate(maskedit1.Text);//maskedit1的格式设成了日期型
  except
    showmessage('wrong!');
  end;
end;
(1)没办法捕捉异常啊:日期格式不对时出现的还是“Debug Expection Notification”警告。
(2)输日期没输完,光标离开就会产生错误,如何捕捉它?
搜了一些关于maskedit的帖子,但还是不知道怎么回事和如何解决呀
请各位指教,谢谢!!!

解决方案 »

  1.   

    估计在strtodate里面调用了try exception raise的过程,考虑用普通的edit来实现这个功能,并不是很难啊
      

  2.   

    1不是没有办法捕捉异,应该是你在delphi的调试环境下边,所以ide还是捕捉了异常。如果独立运行,就没有了。
      

  3.   

    sundayboysII(空),确实是这样,谢谢!
    日期格式不正确,可以 "exception on EConvertError do..."
    那光标离开maskedit的异常类型是什么呢?我想用中文的出错提示~
    还有,向数据库添加记录时,怎么区别“关键字冲突”和“向非空字段插入了空值”这两个异常并分别处理呢?谢谢
      

  4.   

    tryexcept
      on e: Exception do
       ShowMessage('err');
    end;
      

  5.   

    你把showmessage的替换成你想提示的内容不就行了阿。
      

  6.   

    用function TryStrToDateTime(const S: string; out Value: TDateTime): Boolean;
      

  7.   

    不知道异常类型,怎么知道except on什么呢?怎么能够根据不同的异常来显示我定义的出错提示?
    我知道可以用下面这种方法得到每次异常的原因是什么:
    except on e:exception do
    begin
    application.messagebox(pchar(e.message),'error',mb_iconerror+mb_ok);
    end;
    end;
    但都是英文呀,我想显示中文
      

  8.   

    try
    {some code} 
    except
      on e: Exception do
       ShowMessage('在这里可以写中文');
    end;
      

  9.   

    ShowMessage('在这里可以写中文');
    这里的中文可以根据不同的异常显示不同的中文提示?
      

  10.   

    raise exception.create('中文')....
    沒記錯的話
      

  11.   

    try
    ....
    except
    ....
    end;