在Python中使用两个线程时,当出现错误时程序什么也不做,为什么?

2024-05-16 13:55:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python为我的游戏制作一个简单的服务器,我使用两个线程。一个线程正在寻找希望连接的新用户(因为它应该是MMORPG!)二是与用户进行交流。我的问题是:我不能调试!或者至少,这是非常困难的,因为当一个错误发生时,什么也不会发生!假设我写“pint”而不是“print”(作为一个测试,我写了),我通常会得到通知,程序会终止。现在我甚至没有得到通知,也没有退出程序。什么都没有,这使得定位错误发生的位置变得非常困难。你知道吗

我试过使用“ctr+C”,但它什么也没有做,即使程序不会退出,我必须关闭终端!你知道吗

为什么会发生这种情况,我该如何解决它(或我注定)?你知道吗


Tags: 用户定位程序服务器终端游戏错误情况
1条回答
网友
1楼 · 发布于 2024-05-16 13:55:48

我不确定你的问题的原因,但我认为你可以用这个来解决:

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])

相关问题 更多 >