gpt4 book ai didi

Python:如何让代码适用于所有失败

转载 作者:行者123 更新时间:2023-11-28 22:45:47 25 4
gpt4 key购买 nike

我正在使用 python 中的 pdb 模块;我最近才发现它,所以我是初学者。我想要做的是有一个变量,如果为真,它将在脚本中发生的所有失败时调用 set_trace() 而无需将其全部放在 try/except 语句中。例如,我想要以下没有 try/except 的功能:

from pdb import set_trace

debug = True
try:
#entire script here

except Exception, e:
if debug:
set_trace()
else:
print e

有没有一种方法可以做到这一点而无需大量的 try except 语句(也不必为每个可能失败的命令执行 if 语句)?

谢谢。

最佳答案

您可以自定义 excepthook .

When an exception is raised and uncaught, the interpreter calls sys.excepthook with three arguments, the exception class, exception instance, and a traceback object


import sys
import pdb

debug = True

def excepthook(type_, value, traceback):
if debug:
pdb.set_trace()
else:
print(value)
# Per mgilson's suggestion, to see the full traceback error message
# sys.__excepthook__(type_, value, traceback)

sys.excepthook = excepthook

1 / 0

如果您想要在 debugFalse 时出现通常的回溯错误消息,则上述内容可以简化为

if debug:
sys.excepthook = lambda type_, value, traceback: pdb.set_trace()

关于Python:如何让代码适用于所有失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28155161/

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