怎样禁止delphi处理异常,而由我的程序处理?(100分)

  • 主题发起人 主题发起人 Sun
  • 开始时间 开始时间
S

Sun

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
MyDate: TDateTime;
begin
try
MyDate := EncodeDate(1999,2, 29);
Label1.Caption := DateToStr(MyDate);
except
on E:EConvertError do
begin
ShowMessage('ok');
raise;
end;
end;
end;
 
application.onexception:=yourprocedure;
 
你的肯定会处理,但你为什么 要加一个 raise.????? 不要用。

另外,在调试时缺省会有delphi处理,所以请脱离ide 运行。
 
raise是从新唤醒异常,既然已经处理了,这句还是不要的好。
可以自己编写TApplication.OnException,但要小心,因为所有的错误都通过它。
 
...
begin
{$I-}
try
...
{$+}
end;
 
把 Raise 换成 Abort;
 
去掉
on E:EConvertError do

raise
两行就万事大吉了
 
为什么还要raise
去掉它
 
我知道不用raise
但在执行except前EncodeDate已经处理了异常,怎样才能不让EncodeDate处理异常
 
是不是你的还有其他异常,把E:EConvertError 改为
e:exception 试试,ShowMessage(e.Message) 看看具体是
什么错误。
 
SuperMMX说的对
在调试时缺省会有delphi处理,所以请脱离ide 运行
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部