不能捕获多线程中的错误
例如unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses
Unit2;
{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);
var
nt:clsThread;
begin
try
nt:=clsThread.Create(False);
except
on e:Exception do
begin
ShowMessage(e.Message);
end;
end;
end;end.unit Unit2;interfaceuses
Classes, Dialogs, SysUtils;type
clsThread = class(TThread)
private
procedure calt;
protected
procedure Execute; override;
end;implementationprocedure clsThread.Execute;
begin
Synchronize(calt);
end;procedure clsThread.calt;
var
x,y,z:Double;
begin
x:=1;
y:=0;
z:=x/y;
showmessage(floattostr(z));
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货