注意:类似于How to handle TIdHTTP fatal network errors without interrupting thread's execution?但处理TADOConnection致命网络错误的问题。
非常感谢您就TThread TADOConnection
程序中Execute
处理致命网络错误的建议。
我的应用在while..do
程序中运行Execute
循环。每个循环都通过TADOConnection.Execute()
进行数据库更新。所有循环异常都在循环级别处理。还有一个on E: Exception do
的上级处理程序(Execute
级别)。
在活动网络操作期间,远程数据库服务器上发生致命网络错误。出现问题并且在循环线程中间报告他们无法找到数据库服务器的路径(命名管道提供程序错误,EOleException等)网络在10分钟内返回。
我想确保在网络突然死亡的情况下,每个线程都会以某种方式:
期望的结果是保持线程正常运行并且能够解决临时网络问题。线程必须定期检查网络是否恢复。如果是,异常处理程序必须恢复所有ADO引擎调用线程的RestoreNetworkConnection
,然后继续循环。
我绝对不想要的 - 是阻止线程的执行。
Execute
内放置异常处理程序的位置?