说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

捕捉来自 Thread 的异常-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
捕捉来自 Thread 的异常-Delphi资料

Thread 是我们进行应用和设计时不可缺少的利器,然而它却不是轻易就可以掌握的。作为一个不可视系统组件,它封装在 TThread 类中,由于一个子线程可以与主线程同时运行,因此,来自子 Thread 的异常在主程序里未必能捕捉到,这样,来自子线程的异常就会导致 Application 的错误甚至是崩溃,也可能造成主程序都结束了,某个Thread 还因等待同步对象的信号还在那儿自己运行着。

所以,对于有必要进行异常控制的 Thread 就必须进行异常处理,这个异常处理模块最好独立于主程序的异常处理模块。我们都知晓对通常异常的捕获都用一个 try..finally 块来处理,而对来自Thread的异常也不例外:

procedure TMyThread.Execute;

begin

try

// 在安全区应该做的工作

except

// 处理所有的异常

end;

end;

通常,这样的处理可以正常的工作,但却不是恰当的解决方法。我们希望不仅把异常信息传递给用户,而且要求在不影响 Thread 继续工作的前提下,由Application或系统单元(致命异常)来进一步处理异常。要做这样处理,首先,我们在自己的 Thread 类里定义一个异常对象,由这个对象承载各种要处理的异常类实例。其次,建立响应异常的同步事件。对 EAbort 消息加以抑制,对来自程序本身的异常由 Application 处理,对系统级异常,一般交与操作系统来完成。

以下是一个简单的异常捕捉应用框架。

unit Unit1;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

Procedure RunThread;

public

{ Public declarations }

end;

TBaseThread = class(TThread)

private

FException: Exception;

procedure DoHandleException;

protected

procedure Execute; override;

//父类函数为虚,在子类再重载其而处理具体事宜

procedure HandleException; virtual;

public

end;

TMyThread = class(TBaseThread)

private

...

protected

procedure Execute; override;

procedure HandleException; override;

...

public

...

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TBaseThread.DoHandleException;

begin

// 关闭当前主窗体对鼠标的响应

if GetCapture <> 0 then SendMessage(GetCapture

WM_CANCELMODE

0

0);

// 判断异常的范围并做相应处理

if FException is Exception then

Application.ShowException(FException)

else

SysUtils.ShowException(FException

nil);

...

end;

procedure TBaseThread.Execute;

begin

FException := nil;

try

...

//处理一些事情

except

//如果发生了异常

HandleException;

end;

end;

procedure TBaseThread.HandleException;

begin

//得到当前异常对象

FException := Exception(ExceptObject);

try

//避免因 EAbort 消息使程序推出

if not (FException is EAbort) then

Synchronize(DoHandleException);

finally

FException := nil;

end;

end;

procedure TMyThread.Execute;

begin

...

end;

procedure TMyThread.HandleException;

begin

...

end;

procedure TForm1.RunThread;

begin

//为 TMyThread 类创建实例

with TMyThread.Create(True) do

begin

FreeOnTerminate := True;

Resume;

end;

end;

...

【Hadoop技术博客推荐】站在风口的Hadoop技术研究者 2014趋势预测,大数据将成主流 国人当自强:两岸三地在线编程学习网站大搜罗 一周消息树:微软畏惧Chromebook、苹果失去优秀工程师 Google Dart语言开启标准化历程,取代JavaScript仍艰难 11款网站死链检测工具 谷歌Chromecast 2014:开放SDK、建生态系统 大举进攻客厅 优秀程序员的6个共同特质 开源的力量:“中国杯”游戏极限开发大赛 GNOME.Asia 2014年峰会时隔六年重返北京 JavaScript社区开发者调查:服务端JS盛行,Backbone.js使用最多 为什么开发者担心将代码公布 【投稿】移动互联网初创团队7大云计算服务实践分享 云计算发展越快,中小IDC发展机遇越好 前富士康CEO程天纵:创客与资本间并无矛盾 【开源专访】Java高效开发框架Nutz:是SSH的轮子?还是新神器? 仿Google Now和Siri?微软WP8.1将推语音助手Cortana NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目 【快讯】18-19日,亚马逊AWS负责人Andy Jassy会在北京说什么,做什么? 数据库未来的5大预测 华为王丰谈华为一体机三大优势 FusionCube SQL Server针对Windows集群加速 浏览器基准测试:IE11成绩惊人 移动开发工具访谈《近匠》第02期:梆梆安全——APP安全之道 罗永浩:ROM创业,锤子科技A轮融资7000万 独立开发者的自白:Objective-C最糟糕的13件事 回顾Google这一年——Android篇 百度手机卫士正式发布 “防吸费”功能全球首创 2013年平板电脑市场竞争回顾 Apple太阳能数据中心进展顺利,但却在税负减免上备受争议 一名开发者的年度回顾 智能手表Pebble明年初推应用商店 开发者今日起可提交应用 买书落,便宜啊......(UP有分) 请问,通过java怎么访问其他机器的web services?提供思路就给分! 现在我面临着给50多台机装win2000的任务,怎么办 oracle 的SGA问题,性能优化 刚刚完成的改版公司主页。大家去支持一下小弟呀! ? 有谁知道上海的做J2EE薪水有多少(平均水平),谢谢大家! 几个算法问题,参与者都有分! .NET制作的安装程序安装好后如果删除了打包的一个文件,再次通过快截方式启动时会重新安装,怎么不让他安装? 哪位能给提供一套ISO文档的实例? 如果procedure中执行的是一条SQL语句,如何得到返回的数据集? 可不可以在单线乘里开2个SOCKET? 帮我看看这个c语言的程序! 怎样处理窗口标题? 高分求助 !!!怎样利用INTERNET实现异地多台机器互连? 很简单,如何得到当前的时间和日期?(在线等待) 请问哪里有用applet做的,能绘制数学曲线的动态演示系统?各位,请不吝赐教 今天大清早被人诅咒! Delete 多个表时一条语句怎样写?? 请教:如何获取文本框中SQL语句。50分 日期型的格式应该怎样写?? windows xp internet 浏览器的问题 大家帮我看看这段代码:它是如何得到name和phone的值,并写到文件中取得 100分求李维的delphi5.x分布式系统开发的源代码,电子书我已经有 奇怪。为何win2000的搜索选项中的日期控件是Delphi中的样式?欢迎来讨论,给分!!! 请教一个数据库查询的问题! 哥、姐帮帮小第,一生成并打印表格问题(有图片及字体适应),急急,十万火急。 怎样在ASP.NET的页面中,把DataGrid的表头改名??急急急!!! 在线求教:怎样在自己定义的函数里封装自己的MouseMove类??? (高手求救………100分)怎么样用socket(http)实现上载!请提供思路或source code! 怎样调用Dll中导出的变量??? 那位大哥有关于颜色渐变的算法的代码,给小弟一份 小弟万分感谢 颜色渐变的算法 颜色渐变的算法 问一个有关缓存的问题 更换基类的问题? 感谢上学期大家的帮助——散分 一个奇怪的问题,100在线送给你!!! 用rave生成的pdf格式报表,中文字符怎么是乱码? 请进来: windows 2000 能不能用API的方式将Imagelist中的图画在命令按钮(Commandbutton)上? 请各位指点怎么从SQL65升级到7,还有数据备份?请大侠指点迷津? 请问如何解决.exe文件在其他机器上的运行问题 允许DBGrid对记录进行编辑,在线等待,急急急~ 如何在vb.net定义失去焦点事件? 如何读出文章中的部分内容(在线等待) 怎么样在VB中实现象PING -A命令 有没有一个更好的论坛????????????????????有没有人来踢馆?????????????????????????????? 如何访问隐藏共享的硬盘 请大家评评,先谢了 一个有趣的问题: 慢的问题 我在windows下的FormInput里有多个sqlDataAdapter 数据几百条 DataSET.fill慢及了 如何返回当前程序目录的上一级目录? 这里的话,这个电压表好像是既是测定值电阻的电压又是总的电源的电压,呢么在换动定值电阻的时候电压表会改变么?我觉得应该是不会改变的吧,因为电源电压不改变,但它又既测定值电阻的 地球上都有什么样的纸 测电路中的波形是电源所产生的电磁波吗?波形对应电路中的哪些参数在变化? 在化学反应中如果某反应物中的某种元素在化学反应前后发生降价或升价那么这种反应物就可以称之为还原剂或氧化剂吗?如果这种元素反应后分别位于两种生成物中,那么只要有一种生成物 想知道最主要的温室气体是设么 云脚的意思 下列既能与酸反应,又能与碱反应的微粒是A、单质铝 B、Al3+ C、Al(OH)4- D、NH4+ 水平衡调节的效应器是下丘脑还是垂体 为什么H2SO4(aq)与KOH(aq)反应生成1mol水(l)晗大于57.3mol\L汗.......答案是H2SO4二级电离吸热我的错打错了,是晗小于57.3mol\L我想问强酸电离还吸热吗?那HCl与NaOH反应不也电离吗它的反应就 液压系统中比例阀和伺服阀各有啥特点和区别比例阀和伺服阀各有啥特点和区别?是否能相互代替使用,代替使用易产生啥坏处? 地球的淡水资源,污染情况,浪费现象 什么是温室气体 为什么叫伺服阀 地球上最好看的花是什么?千万别提“如花”两字,否则我第二天直接撤消.楼1你的回答很有创意,我在这里向你颁发“智商合格证书”,望你再接再厉,不顾前贤,“勇创夺命岛”. share 这边怎么译share one's character and personality怎么翻译噢? 伺服阀是什么东西? 如图是一种测电阻的实验电路,R1是电阻箱,电源电压保持9V不变.(1)当开关掷向1时,电压表示数为3V,此时电阻箱的电阻为6Ω,求R2上电流在1min内产生的热量是多少?(2)当开关掷向2时,灯泡恰好 “春风一度”是什么意思啊? 如图6所示电路中,电源电压保持不变,其中定值电阻R1的阻值为R,滑动变阻器R2的阻值为2R,闭合电键S,当滑动变阻器的滑片P从中点向右移动时:1)电表示数不发生变化的是 ; 2)电 写削苹果的过程!记住,100字到150字 什么叫做 春风一度 下列各组物质按酸、碱、单质、氧化物顺序排列的是( )A.H2SO4 Na2O C CO B.Mg(OH)2 CuSO4 C CO2 C.KOH HNO3 O2 SO3 D.HCl NaOH O2 P2O5 只有金属离子才带二个单位正电荷,为什么? 春风一度,胜却无数. 怎样知道氧化物和酸 碱能不能反应比如 co 和 Ba(oH)2 能不能反应 电液伺服阀与对称缸的流量是不是相同 羌笛何须问杨柳,春风一度玉门关,这首是的含义 溶于水使溶液的温度升高的物质有:酸 ______________ ;碱 ________________ ;氧化物 ______________ . 极目,毛毡,骠悍,驰骋,无垠,比喻什么? 英语翻译When we share laughter,There's twice the fun;When we share the success,We surpass what we've doneWhen we share problems,there's half the pain;When we share tears,A rainbow follows rain.When we share dreams,They become more real;When we sh 萌芽一些经典语句 妈妈拿起水果刀,挑选了一个又大又红的苹果熟练地削着,削好后,递给我,我的心里十分温暖.“削”字平淡无味,可以把“削”换成其他动词吗?可以找个好一点的吗? 一行军队伍长60m,匀速前进,一位通信员从排尾赶到排头,立即又赶回排尾,这时队伍前进了144m,设通信员走的速度大小不变,求通信员走过的路程. 司机驾驶汽车在上陡坡前,总要把档位从高速档调整为低速档,这样才能顺利上坡, 妈妈给我削苹果,我内心的感受 使用托盘天平之前,要对它调节底板谁平,再需调节( )若发现指针偏指向标尺左侧,为了正确使用,应将横梁右端的螺母向( )移动,衡量左端的 螺母向( )移动 新概念经典句子找新概念作文中的经典语句,优美语句 妈妈拿出水果刀,挑选了一个又大又红的苹果熟练地削着,削好后,递给我,我的心里十分感动.全面.45字以上 俄国十月革命成功之后建立的第一个社会主义国家是应该是苏俄1922年苏联成立,苏俄可以说改称苏联 新概念3有哪些比较好的课文和句子可以来背诵,就是必背的课文和经典的句子? 下面是王宁同学的作文片段,老师提出了修改意见,请你帮他改一改.【原文】 妈妈拿起水果刀,挑选了下面是王宁同学的作文片段,老师提出了修改意见,请你帮他改一改.【原文】妈妈拿起水果 英语翻译Sustained annual average grwoth of more than 3 per cent might sound quite good and for most advanced industrial economies already operating at full(ish) employment it would be.主要是and后面的这句,不太明白 铁能和氧化铜反应吗求大神帮助如果能反映 反应条件又是什么? 电液伺服阀使用问题QDY6电液伺服阀是如何使用的?工作原理是根据输入电流的正反相来控制流量正反向,以此来控制机床前后运动,但是我们在使用时是加电压进去,然后通过一个驱动系统来转 美好的反义词是什么呀 能与氧化铜反应的化合物是? 电磁波防盗系统和射频防盗系统有什么区别?3Q电磁波防盗系统和射频防盗系统有什么区别?各自的优缺点是什么? 17.(3分)滑轮组即能省力又能改变力的方向,建筑工人用自制的滑轮组把600N的重物缓慢提升2m,如右图所示,绳自由端的拉力F=250N.拉力做的功是____J,该滑轮组的机械效率等于____,若不计一切摩擦和 闯王李自成 五氧化二磷跟氧化铜有反应吗大神们帮帮忙 B离子带一个单位正电荷比氧原子多2个电子 问,B是什么? 闯王李自成怎么样 歌曲名“青春”是谁唱的,开始的歌词“在这个夜晚 我突然间长大了 真正感到了害怕 感到正慢慢丢失青春” 问下带2个单位正电荷的镁离子和+2价的镁元素怎么分辨啊,为什么一个上面是+2,另外是2+我到底该怎么写啊!到底是不是+号在前面啊! 一台单缸四冲汽油机,转诉2400转每分,那么它每秒做功几次,曲轴转多少圈 〕 为什么月食能证明地球是球体,日食却不行? 莫斯科保卫战怎么样 我有一个问题初三物理的有一题目中说;将一块重为3N,体积为100立方厘米的石块,用细线系着浸没在装有水的圆柱形容器中,容器中水的深度变化了2CM g=10N/kg 求:细现松动石块沉入容器底静止 我要架设一个线路,长度200米,负荷8千瓦,请问需要买多少平方的铝心线. 求一无线电能传输系统中的直流射频电源设计的电路图无线电能传输是将电源的电能转变为可无线传播的能量,在接收端又将此能量转变回电能,从而到达对用电器的无线供电.本课题是利用电 台湾花莲发生4.7级地震 民众再度心香港名医庄善春捐资120万修建华侨大16秒26 温州女生刘伊玮单手还原魔温州一对母女裸死出租房内 腿部有烧焦浙江大学教授演示神奇“隐身衣” 鱼缸上周末金华16个监测点 11个点空气婴儿注射疫苗险丧命 “疫苗后遗症”家浙江多举措扶持小微企业浙江商品房销售增幅下降上海总价地王刺激周边二手房 两月单价朴槿惠出席法国韩剧派对 当地民众热情江苏一农业类高校设电梯专业 学校回应棱镜门记者称自己必将返回美国 绝不因快车道上驶来雪橇车:老人驾车三只狗狗南京:学生上“普高职高融通班”可读大南京一男子酒后开车连撞5车被判缓刑南京六合区一农民因焚烧秸秆被治安拘留南京博物院耗资千万建成文物“医院”(穆尔西审判或引新流血冲突 当局似已胜国际新闻早报:土耳其出动战机拦截叙利Netfix测试4K超清视频 或于明印空军一指标排名世界第一:中美俄默认惊喜不断!原油狂涨停不下来,50美元adidas Climachill开不是吧,Google 要借搜狗搜索重不到4000元的mini相机包 居然王毅同美国国务卿克里通电话26岁男子佩戴酷炫假肢配无人驾驶飞机原来你是这样的凯凯王,从手模到娃控,曾陷“嫖娼门”的黄海波露面了羡慕眼睛长得好看的人,他们早就赢得了轨道交通2号线一期近九成工点进场施工合肥市人民代表大会及其常务委员会立法池州市考察团来肥考察贵阳大数据金融成果闪耀上海合肥民企进入“交棒”关键时期中考语文科目难度不大“中俄媒体交流年”活动六月启动文艺控的福音来啦!这些创意书签个个都放榜1月后被“补录” 成都幸运男孩迈朝鲜新建大型露天水上乐园 戏水玩沙项土耳其议员网上调侃\"希望再打下一架
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘