我想捕捉一个线程的错误,请问用什么方法实现??(50分)

  • 主题发起人 主题发起人
  • 开始时间 开始时间
捕捉错误要该线程自己捕捉。
要是想在住线程知道子线程的错误,可以由子线程捕捉后发消息给住线程
 
没有别的方法么???——比如在其它线程监视另一个线程的执行状态。
——我也时间遇到这样的问题要解决。 :(
 
写一个TApplication.HandleException函数
Application.HandleException(Sender: TObject);
begin
if Sender is TThread then
begin
.....
end;
end;
 
可以在线程内用PostMessage发送一个消息给主窗口,主窗口再写一个捕获程序。
1、发送消息:PostMessage
(FForm.Handle,wm_ThreadErrorMsg,Self.ThreadID,0);
2、接受消息的申明为:
procedure ThreadError(var AMessage : TMessage);
message WM_ThreadErrorMsg;
实现就可以了。
其中WM_ThreadErrorMsg是自定义的MEssage.
 
自定义一个Exception类,再线程中Throw它,在Application中处理它
 
太简单!这样吧:
procedure TMyThread.Execute;
begin
try
(线程的执行代码...)
except
(错误的处理代码...)
end;
end;
OK!!!
 
呵呵,delphi里不是throw,而是raise,
在出现错误的时候,引起一个异常,异常会
逐层的引起,只要捕获就可以了
 
接受答案了.
 
后退
顶部