关于回溯和退出的困惑

2024-06-09 20:52:01 发布

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

我有一段时间没有使用Python从3.1更新到3.2。我以前退出Pygame程序的方法是在下面的代码中。现在我收到一条回溯信息:

Traceback (most recent call last):
  File "C:\Python32\Nero\gogo.py", line 24, in <module>
   terminate()
  File "C:\Python32\Nero\gogo.py", line 18, in terminate
   sys.exit()
SystemExit

现在我不记得回溯了,但据我所知,它是错误的归宿。这在过去不会产生错误。我尝试使用exit()代替系统出口()但它请求确认终止程序并关闭shell(我不希望发生这两种情况)。我做了一些谷歌搜索,发现了各种类似的查询,但我仍然不确定了解这个错误并着手解决它的最佳方法?程序仍然正常工作。我只是隔离了相关的部分,因为在较大的程序中错误保持不变。在

我的代码:

^{pr2}$

谢谢!在


Tags: 方法代码inpy程序信息错误line
1条回答
网友
1楼 · 发布于 2024-06-09 20:52:01

我在win7w/python3.32bit和pygame1.9.2a0上进行了测试,但没有得到结果。在

您看到的并不是真正的“错误”,而是通过调用sys.exit()引发的SystemExit异常。如果您refer to the docs,您将看到调用所做的只是引发异常。如果没有其他方法处理它,那么它会导致主线程终止。这应该是安静的(如您所见,没有堆栈跟踪)。不幸的是,我不能告诉你为什么你看到这个堆栈跟踪。在

如果要从GUI启动脚本,应该尝试创建脚本的.pyw扩展版本,以防止shell窗口随GUI窗口一起打开。也许这会让你看不到输出结果?在

另外,请确保在while循环中实际调用自己的terminate()方法,而不是直接调用sys.exit。在

相关问题 更多 >