如何解决如何忽略异常并在python中处理整个块多行?
如何忽略给定代码段的所有异常,这样一个异常不仅会被忽略,而且不会阻止下一行的执行?
例如,考虑以下代码
#!/usr/bin/env python3
def one():
raise Exception
print( 'one' )
def two():
print( 'two' )
try:
one()
two()
except:
pass
我希望上面的代码打印two
,但实际上不打印任何内容,因为“被忽略的”异常仍然阻止执行two()
。
是否可以实际上忽略python代码块中的异常?
编辑:此应用程序用于close()
函数,该函数在我的应用程序退出时进行一些清理。它需要尽可能快地发生,并且将由许多命令组成(不仅是我所用的两个示例,而且可能是数十个不相关的动作)。而且,如果其中一行失败,则不应阻止下一条尝试。请告诉我,还有一个比“仅使用多个try
块”更好的选择。.
解决方法
如果要在引发异常时调用two
函数,可以将其添加到finally
块中:
def one():
raise Exception
print( 'one' )
def two():
print( 'two' )
try:
one()
except:
pass
finally:
two()
,
这可以通过fuckit
python模块来实现。
这是您的示例中修改的代码:
<django.db.models.query_utils.DeferredAttribute object at 0x111874dc0>
以及执行示例:
#!/usr/bin/env python3
import fuckit
def one():
raise Exception
print( 'one' )
def two():
print( 'two' )
@fuckit
def helper():
one()
two()
helper()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。