try..except 语句可以捕获其它线程中的错误吗?

abxxxxabab 2014-08-09 01:34:53
try..except 语句可以捕获其它线程中的错误吗?
...全文
70 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
程晨c 2014-08-09
  • 打赏
  • 举报
回复
不能捕获多线程中的错误 例如

unit Unit1;

interface

uses
  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;

implementation

uses
  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;

interface

uses
  Classes, Dialogs, SysUtils;

type
  clsThread = class(TThread)
  private
    procedure calt;
  protected
    procedure Execute; override;
  end;

implementation

procedure 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.

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧