在try子句中是否有任何方法可以继续执行代码,即使在引发异常时也是如此?你知道吗
这是代码示例。你知道吗
outer_margin = 0.125 # Default Amazon
safe_zone = 0.25 # Default Amazon
safe_spine = 0.0625 # Default Amazon
if custom_measure is not None:
if isinstance(custom_measure, dict):
try:
outer_margin = custom_measure["outer_margin"]
safe_zone = custom_measure["safe_zone"]
safe_spine = custom_measure["safe_spine"]
except KeyError as e:
logger.warning("Key {} not found, default value used.".format(e))
这三个值都是可选的,因此键outer_margin
可能不存在,但safe_zone
可能存在。即使调用outer_margin
引发异常,我也希望访问safe_zone
。有没有什么方法可以在一个试块中完成?比如:
# Not valid syntax
try:
outer_margin = custom_measure["outer_margin"]
try:
safe_zone = custom_measure["safe_zone"]
except KeyError as e:
pass
在这个例子中,我已经找到了一个不同的解决方案,但是现在我很想知道是否有一种方法可以继续执行一个try/except块,即使引发了异常。你知道吗
您可以使用^{} 而不是捕获
KeyError
异常。你知道吗如果
"outer_margin"
在custom_measure
中不存在,它将被设置为None
。你知道吗您还可以像这样设置另一个默认值而不是
None
。你知道吗如果确实需要日志,请重构
try/except
:如果没有,那么就这么简单:
相关问题 更多 >
编程相关推荐