|
|
1
7
这与“线程”关系不大。重试逻辑可以在异常上实现,这是常见的做法。
但是,捕捉
除此之外,您的重试实现正在使
递归
也可能是坏的。最后会遇到堆栈溢出错误(以及
您可能还需要添加一个计数器来限制重试次数。 |
|
2
3
你不应该用
此外,如果在
我建议您创建一个计数器来限制最大尝试次数。 对于这个用例,从这个问题中得到启发 How do you implement a re-try-catch?
有许多库提供恢复机制。我向你推荐
|
|
|
3
3
它不会“恢复”它,而是重新开始并重试。这可能导致无休止的递归调用循环,直到发生stackoverflow。在这种情况下,您的应用程序将被停止。
想象一下访问一个不存在的文件(由于打字错误或其他原因)。你总是能抓住
在不改变任何东西的情况下一次又一次地重新开始相同的任务,几乎总是会导致相同的异常,并且发生上述情况。正确的异常处理总是比在任何情况下保持程序的活动性更重要。让软件的用户知道问题所在。也许这是他可以改变的。也许不是。无论如何,最好中止线程,而不是递归地重新开始。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |