导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2017/9/20 23:41:41
标题:
try except 不能截获异常 求助!!!
浏览:1049
加入我的收藏
楼主:
A线程 try fcptf(n); except begin Writeln(fcptf'出错'); end; end; B线程 while not exita do begin try if wff_gl_ukov > 0 then begin drawImage(); end; except begin Writeln('imaged出错'); end; end; end; ApplicationEvents1控件能截获access violation 异常但不知道哪个线程(两个线程单元),用try except拦不到啊?
----------------------------------------------
-
作者:
2017/9/21 0:12:23
1楼:
在线程里绘制ui么? 你在你的drawimage里面抓异常就是了。 不过,提醒你一下,你这种手法是不正规的。子线程不应该涉及到任何ui相关业务。
----------------------------------------------
--
作者:
2017/9/21 0:36:24
2楼:
画图我用SendMessage到主线程画的用的是消息 两线程一起运行老出access violation,不知往哪下手;try except 又抓不到??
----------------------------------------------
-
作者:
2017/9/21 8:20:38
3楼:
应该做线程同步吧
----------------------------------------------
Delphi爱好者。
作者:
2017/9/21 18:38:48
4楼:
mybmp.Canvas.Lock; ……画 mybmp.Canvas.Unlock; 画没问题。 try except不知为什么拦截不到access violation错误,ApplicationEvents1控件可以。 哪位高手能说下;谢谢!
----------------------------------------------
-
作者:
ozhy1 (ozhy1)
★☆☆☆☆
-
普通会员
2017/9/21 19:05:58
5楼:
线程就是这样你可以写日志判断 或放在TTimer控件里
----------------------------------------------
沈阳-
作者:
moom (小新啊)
▲▲▲△△
-
普通会员
2017/9/23 15:30:00
6楼:
同意楼上,或者在线程写日志,看看那里出问题吧
----------------------------------------------
谢谢各位大大
作者:
2017/9/25 12:54:49
7楼:
线程里截获异常,一般是可以的。显示异常的代码最好用同步函数同步一下。类似如下 TThread.Synchronize(nil, // 线程暂停,等待主线程执行这里面的代码,执行完毕后继续执行线程内的代码 procedure begin // 操作界面的,也就是对界面有修改的代码要写在这个里面,要用这个程序块包起来,这是让这个线程暂停,等主线程执行这里的代码 Text3.Text := (Text3.Text.ToInteger + 1).tostring; end);
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
2017/9/25 19:45:04
9楼:
http://blog.163.com/you888@188/blog/static/6723961920159271412582/
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/