我在Python中有一段代码,似乎在概率上导致错误,因为它正在访问服务器,有时该服务器有500个内部服务器错误。我想一直尝试直到没有收到错误为止。我的解决方案是:
while True:
try:
#code with possible error
except:
continue
else:
#the rest of the code
break
对我来说,这似乎是一种hack。有没有更多的Pythonic方式可以做到这一点?
它不会变得更干净。这不是一件很干净的事情。充其量(无论如何,它都会更具可读性,因为的条件就在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] 删除。
我来说两句