2

我有一个脚本(似乎)不可预测地崩溃了。我不知道如何重现它。

Python是否保留了全局系统日志文件,所以我可以回去看看是什么异常导致了退出?如果是这样,在 Windows 上的哪里可以找到它?如果可能的话,我也希望能够看到回溯。

编辑:我知道我可以将整个脚本放在一个try...except块中,但我不知道在它再次崩溃之前我将运行它多长时间。我希望至少能够获得一些关于已经发生的崩溃的粗略信息,即使这些信息只是导致崩溃的异常类型。这样我就可以尝试更可靠地重现错误。

我怀疑崩溃是由于与外部设备的通信失败(可能是简单的电缆松动)造成的。这类故障本质上是随机的,难以重现,所以我想知道它是通信错误还是真正的代码错误。

4

2 回答 2

0

你能“抓住”exception吗?如果是,那么您可以使用traceback打印堆栈跟踪并查明问题发生的位置。

然后,您可以使用 Eclipse 调试有问题的模块(即使它是 python lib 的一部分,它也将是普通可读的形式)。


import traceback
...
...

try:
    <your script>
except Exception as runtime_ex:
    print runtime_ex, traceback.format_exc()
于 2012-08-06T14:29:08.283 回答
0

如果您想了解有关异常的信息,可以使用此代码。

try:
    #do some stuff
    1/0 #stuff that generated the exception
except Exception as ex:
    print ex
    raw_input()

为了正确调试它,有一个工具winpdb。有一个很好的教程可供它学习调试使用它调试教程

于 2012-08-06T14:23:48.833 回答