//然后在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 语句里。
一、复合语句(或称语句结构、语句框架、语句模式等)1、粗放式
try
finally
end
和
try
except
end
2、精细式
try
except
on
异常1:
当异常1发生时的处置方法
on
异常2:
当异常2发生时的处置方法
......
on
异常n:
当异常n发生时的处置方法
end
二、简单语句
raise
主动抛出异常,供外层异常处理机制处理如本程序没有自己处理的机制,则交由操作系统处理,或者说最外层的处理机制是操作系统,处理方式一般就是弹出对话框。
三、嵌套方式举例
try
......
try
......
except
on
Ex1:
DoEx1
on
Ex2:
DoEx2
......
on
Exn:
raise
//
自己不处理,由外层处置
end
finally
......
end
呵呵!很高兴为你回答在多层数据库应用中通常有以下几种通信协议:TDCOMConnection DCOMTSocketConnection Windows Sockets (TCP/IP)l
TOLEnterpriseConnection OLEnterprise (RPCs)
TMIDASConnection即DCOM、TCP/IP、OLEnterprise和CORBA这些不同的连接方式都各有利弊,到底选择哪种连接方式,取决于客户的数量、客户的分布情况以及怎样发布应用程序。
DCOM是一种最直接的连接方式,它不需要专门的运行期软件支持。不过,Windows 95 不支持DCOM,除非安装了DCOM95程序。
要使用MTS安全服务,最好使用DCOM连接方式。MTS的安全服务是基于角色的,当一个客户通过DCOM访问MTS时,DCOM会告诉MTS有关客户的信息,MTS据此来决定客户的角色。如果用其他连接方式,需要有专门的运行期软件支持,客户的调用首先被传递给这些运行期软件而不是MTS,MTS就不能尽快指派角色。
TCP/IP连接方式的适合范围非常广泛,例如,如果客户程序要以ActiveForm的形式分布在Web上,最好采用TCP/IP连接方式,因为您无法肯定下载ActiveForm的计算机是否支持DCOM,而支持TCP/IP的环境是很普遍的。
要使用TCP/IP连接方式,应用服务器端必须运行一个专门的运行期软件ScktSrver.exe或ScktSrvc.exe,其中,ScktSrvc.exe只适合于Windows NT,可以作为一个服务在后台运行。与DCOM连接方式不同的是,客户的请求首先传递给ScktSrver.exe或ScktSrvc.exe,然后再创建远程数据模块的实例,而不是由客户的调用直接创建远程数据模块的实例。客户程序上的MIDAS连接构件通过IProvider接口与ScktSrvr.exe or ScktSrvc.exe通讯。
不过,客户程序很有可能在没有正常释放对IProvider 接口的引用之前出现异常,而TCP/IP连接方式无法检测到这种情况,更无法通知应用服务器,因此,有可能造成应用服务器上的资源被占用后得不到释放的后果。
如果要在应用服务器端使用Business Object Broker,就要使用OLEnterprise连接方式。此时,应用服务器端和客户端都要安装OLEnterprise运行期软件。
Delphi 4是目前唯一支持CORBA的开发工具。基于CORBA的客户程序和应用服务器可以与其他基于CORBA的应用程序无缝对接。要使用CORBA连接方式,需要ORB的支持,它提供了类似于Business Object Broker的功能。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)