我有一个用Python/Mechanize编写的大批量下载应用程序,目标是下载大约20000个文件。显然,任何如此大的下载器都会偶尔遇到ECONNRESET
错误。现在,我知道如何处理each of these individually,但这有两个问题:
即使我要这样做,一旦异常被抛出,也很难知道如何处理错误。如果代码只是
data = browser.response().read()
然后我就知道如何处理它,即:
^{pr2}$但如果只是
browser.follow_link(link)
那么,如果在这里的某个地方抛出ECONNRESET
,我怎么知道Mechanize的内部状态是什么样子呢?例如,在我再次尝试代码之前,是否需要调用browser.back()
?从这种错误中恢复过来的正确方法是什么?
编辑:接受的答案中的解决方案肯定有效,而在我的例子中,它并不难实现。然而,我仍然对是否有一种错误处理机制能够更快地捕捉错误感兴趣。在
或许可以将try…except block放在命令链的更高位置:
相关问题 更多 >
编程相关推荐