在Python中尝试直到没有错误

murgatroid99:

我在Python中有一段代码,似乎在概率上导致错误,因为它正在访问服务器,有时该服务器有500个内部服务器错误。我想一直尝试直到没有收到错误为止。我的解决方案是:

while True:
    try:
        #code with possible error
    except:
         continue
    else:
         #the rest of the code
         break

对我来说,这似乎是一种hack。有没有更多的Pythonic方式可以做到这一点?

用户395760:

它不会变得更干净。这不是一件很干净的事情。充其量(无论如何,它都会更具可读性,因为的条件就在break那里while),您可以创建一个变量result = None并在其上循环is None您还应该调整变量,并且可以continue用语义上正确的替换pass(您不关心是否发生错误,您只想忽略它),然后删除break-这也将获得其余代码,该代码仅执行一次, 跳出循环。还要注意,由于文档中给出except:的原因,裸露的子句是邪恶

包含以上所有内容的示例:

result = None
while result is None:
    try:
        # connect
        result = get_data(...)
    except:
         pass
# other code that uses result but is not involved in getting it

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python try /除非一直尝试直到没有错误

While循环直到没有错误

Malloc直到突然终止而没有错误

Matlab - 将值减少 1 直到没有错误

列表中项目的Python索引没有错误?

不同的缩进在Python中没有错误

在Python中中断循环而没有错误-Selenium

尝试从github实现CountryPicker。代码中没有错误,应用崩溃,很多logcat错误

代码中没有错误,但尝试更新时表中没有发生任何更改

在 selenium python 中自动搜索过程没有错误但没有输出

python脚本后没有打印,没有错误

Python/MySQL,没有错误但没有插入数据

python找不到文件错误,cmd中没有错误

导入错误:python 用于 3.7 但在 2.7 中没有错误

尝试直到没有例外?

Python 2.7.6-Sublime 2中的UnicodeEncodeError,但终端中没有错误

是什么导致XMLHttpRequest挂起而没有错误,直到浏览器默认超时?

当我尝试使用Hibernate删除实体时,没有错误消息但没有删除

IOErrorEvent的text属性中没有错误描述,只有错误号

python脚本在执行过程中停止,没有错误

将Unicode转换为ASCII且Python中没有错误

Python-SystemError:PyObject调用中没有错误的NULL结果

MySQL python连接器代码中止而没有错误(MySQL文档中的代码)

没有错误吗?

线程 main 中的异常,Netbeans 中没有错误

使用python的Untar文件没有错误/警告?

Python多线程模块崩溃而没有错误消息

JDBC executeBatch()在PostgreSQL中挂起而没有错误

我的junit测试中没有错误消息