在Python中使用两个线程时,当错误发生时程序什么也不做,为什么?[duplicate]

kb5ga3dv  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(100)
    • 此问题在此处已有答案**:

Is it possible to make the keyboard module work with pygame and threading(1个答案)
pygame.event.get() not returning any events when inside a thread(1个答案)
十小时前关门了。
我正在用Python为我的游戏制作一个简单的服务器,我使用了两个线程。一个线程寻找希望连接的新用户(因为它应该是一个MMORPG!),另一个线程与用户通信。我的问题是:我不能调试!或者至少,这是非常困难的,因为当一个错误发生时,什么也没有发生!假设我写"pint"而不是"print"(我写了,作为一个测试),我通常会得到通知,程序会终止。现在我甚至没有得到通知,程序也不会退出。什么都没有,这使得定位错误发生的地方变得非常困难。
我试着使用"ctr + c",但它什么也不做,即使这样程序也不会退出,我必须关闭终端!
为什么会发生这种情况,我该如何解决它(或者我注定要失败)?

xdnvmnnf

xdnvmnnf1#

我不知道你的问题的原因,但我认为你可以解决这个:

import sys
...
print >> sys.stderr, 'whatever you want to print'

我使用一个函数来获得这个带有彩色输出的调试信息(DEBUG是一个全局变量):

def debug(self, *txt):
    if DEBUG:
        print >> sys.stderr, '\033[31m[Debug]:\033[0m ', ' '.join([str(e) for e in txt])

相关问题