在Python中是否有可能在当前函数级别捕获异常,但不能从被调用的子函数中捕获异常?
请考虑以下示例:
def func(some_dict):
print(some_dict["special_value"])
some_dict = {
"general_value": True,
# "special_value": True
}
try:
if some_dict["general_value"]:
func(some_dict)
except KeyError:
print("General value not set")
我想捕获if some_dict["general_value"]:
可能引发的KeyError,但会从func(...)
内部引发任何KeyError。
但是,尽管设置了键General value not set
,以上示例仍显示general_value
。
我可以想到以下解决方法,但我想知道是否有更好的方法
temp_value = None try: temp_value = some_dict["general_value"] except KeyError: print("General value not set") if temp_value: func(some_dict)
提出此问题的另一种方法:是否可以排除
try/except
块中的某些部分?
在Python中是否有可能在当前函数级别捕获异常,但不能从被调用的子函数中捕获异常?请考虑以下示例:def func(some_dict):print(some_dict [“ ...
您的解决方法是正确的总体思路,但可以更整洁地完成以下操作:
您可以使用嵌套的try / except-但不建议这样做。