gpt4 book ai didi

python - 遍历 Python 队列时的异常处理

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:03 26 4
gpt4 key购买 nike

我在全局 globqueue 数组中存储了一堆队列。我现在想遍历所有这些队列并获取其中的所有项目。

不过,我在从队列中获取项目时遇到了一些问题。我正在使用 .get_nowait(),如果队列中没有任何内容,它将抛出“空”异常。我以为我可以像这样捕获它:

                    for index, item in enumerate(globqueue):
print index, item

iterme = 1

while iterme:
try:
getiterme = item.get_nowait()
print getiterme
except ValueError:
iterme = 0
continue

但是我还是报这个错,剩下的代码就不会继续了:

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "server.py", line 213, in run
getiterme = item.get_nowait()
File "/usr/lib/python2.6/Queue.py", line 190, in get_nowait
return self.get(False)
File "/usr/lib/python2.6/Queue.py", line 165, in get
raise Empty
Empty

我知道我可以先用 .qsize() 检查队列的大小,但我也读到它并不总是那么准确所以..请求原谅比请求许可更好,对吧?

最佳答案

您正在捕获 ValueError 但调用引发了 Empty。尝试更改您的 except 处理程序以捕获 Empty 异常。

from _queue import Empty

if __name__ == '__main__':
try:
item = item.get_nowait()
# do some work
except Empty:
pass # handle error

关于python - 遍历 Python 队列时的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com