Delphi XE8在应用程序启动时正常处理ETetheringException

时间:2015-06-16 10:11:41

标签: delphi exception tethering delphi-xe8

德尔福应用程序网络共享管理器保留2020-2039范围内的20个端口,以启动其通信线程。 我想知道当第21个应用程序在同一台计算机上启动时会发生什么。事实证明,这个应用程序只是挂起来没有响应,直到它被杀死,我还没有找到一种方法来优雅地终止它。

要重现,只需在空表单上删除TTetheringManager和TTetheringProfile,将配置文件连接到Manager,编译,在IDE外部启动应用程序20次,最后在IDE中启动第21个实例。

这是我到目前为止所发现的:

System.Tether.NetworkAdapter:procedure TTetheringNetworkManagerCommunicationThread.Execute ; 当无法启动TCP或UDP通信服务器时,将引发 ETetheringException.Create(SManagerNetworkCreation)。到现在为止还挺好。

此异常显示在调试器中。当我继续并逐步执行以下代码时,应用程序最终会挂起在 System:function AcquireExceptionObject 中,并且永远不会返回。

由于在Application.Run期间引发了应用程序,我试图通过以下方式捕获异常:

try
  Application.Run;
except
  ShowMessage('Something went terribly wrong!');
end;

但这不起作用。有关如何捕获(或阻止)此异常的任何建议吗?

1 个答案:

答案 0 :(得分:0)

由于这似乎是一个错误,我提交了一份质量报告:https://quality.embarcadero.com/browse/RSP-11345