delphi异常处理

tryexcept抛出异常的时间太长了怎么缩短响应时间?比如说2秒没try成功就转到except听别人说用timer???不要告诉我线程休眠!!回答的好追200分详细点好... try except
抛出异常的时间太长了 怎么缩短响应时间? 比如说2秒没try成功就转到except听别人说用timer???
不要告诉我线程休眠!!
回答的好 追200分
详细点好吗 时间到了怎么跳转到except中
展开
 我来答
iloveyew
2008-05-06 · TA获得超过1349个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:156万
展开全部
//在界面上放一个Timer控件,设置Interval为1000即1秒,当然也可以根据实际情况设置为100,500,以缩短判断时间。
//然后在Timer执行时,记录流逝时间。
//最后在你要处理的过程中,加入对流逝时间的判断,如果大于你预期的时间,则抛出异常。
//---------------------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls;

type
EMyException = class(Exception);
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
UsedTime:Integer=0;//秒
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var ii:integer;
begin
UsedTime:=0;
Timer1.Enabled :=True;
Try
//以下为你自己的处理过程。中间加入对UsedTime的判断。如果大于你预定的时间,则抛出异常
for ii:=1 to 100000000 do
begin
application.ProcessMessages;
if UsedTime>=2 then
raise EMyException.Create('Your custom error message! For example : Timeout!');
end;

except
Showmessage('TimeOut!');
Timer1.Enabled :=False;
end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
UsedTime:=UsedTime+1;
end;

end.

//这里面的关键是,在满足你设定的时间条件后,要用 Raise 抛出一个异常!就可以使程序直接进入 Except 语句里。
虔诚又顺利灬东风u
2008-04-24 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:422
采纳率:50%
帮助的人:118万
展开全部
的确可以用timer来解决,进入try时,记忆timer时间,如果不行就直接推出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧缘美矜仁冥璧9U
2008-04-26 · 超过103用户采纳过TA的回答
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:0
展开全部
用一个线程来监控.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式