gpt4 book ai didi

python - 强制代码流转到 except block

转载 作者:太空狗 更新时间:2023-10-29 22:13:48 27 4
gpt4 key购买 nike

我有:

try:
...
except Exception, e:
print "Problem. %s" % str(e)

但是,在尝试的某个地方,我需要它表现得好像遇到异常一样。这样做是不是 pythonic 的:

try:
...
raise Exception, 'Type 1 error'
...

except Exception, e:
print "Problem. Type 2 error %s" % str(e)

最佳答案

我认为这是一个糟糕的设计。如果您需要在(且仅当)未引发异常时采取某些操作,这就是 else 子句的用途。如果你需要无条件地采取一些行动,这就是 finally 的用途。这是一个演示:

def myraise(arg):
try:
if arg:
raise ValueError('arg is True')
except ValueError as e:
print(e)
else:
print('arg is False')
finally:
print("see this no matter what")

myraise(1)
myraise(0)

您需要将无条件代码分解为finally,并根据需要将其他内容放入except/else

关于python - 强制代码流转到 except block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394029/

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