我正在设计一个系统,我需要不断尝试连接到 MQ 服务器,直到我获得连接。
默认情况下,如果 MQ 不可用,它将完全异常。如何才能一次又一次地调用相同的方法,直到我获得连接。我知道我可以使用递归,有没有更好的方法来做到这一点。因为我想避免无限循环。我还想等待进一步处理,直到我获得连接。
我在 C# 中使用 .net 2.0。它是窗口服务应用程序。
最佳答案
基本结构如下:
while(true)
{
try
{
// attempt connection
break; // Will only get here if an exception was not thrown
}
catch
{
// Logging, sleep statement
}
}
如果您有任何方法可以查明是否无法建立连接(抛出异常除外),请使用该方法。异常不应该用于流控制,我展示的示例是针对极端情况的。
为了避免无限循环,您可能需要添加计数(例如,只尝试 10 次)。
关于c# - 调用相同的函数直到它连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663111/