【发布时间】:2011-12-16 18:22:39
【问题描述】:
我有一个调用 SOAP 接口的类,并返回一组数据。但是,如果此请求超时,则会引发异常。这很好。但是,我希望我的程序尝试再次进行此调用。如果超时,我希望它继续进行此调用,直到它成功。我怎样才能做到这一点?
例如:
try
{
salesOrdersArray = MagServ.salesOrderList(sessID, filter);
}
catch
{
?? What Goes Here to FORCE the above line of code to rerun until it succeeds.
}
【问题讨论】:
-
增加超时不抛出异常?
-
您可以简单地从 catch 块中再次调用该方法,BUT - 如果服务长时间停机会发生什么?您是否希望该方法递归运行 24 小时?我建议将其限制为一定的重试次数。
-
在所有这些答案中,没有一个人告诉您要捕获更具体的异常。如果您的 try 块包含处于无效状态的对象以获取
salesOrderList怎么办?重试永远不会成功。