Возможно ли в 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")
Я бы хотел бы поймать KeyError, который может вызвать if some_dict["general_value"]:
, но вызвать любые KeyErrors изнутри func(...)
Однако в приведенном выше примере будет отображаться 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
из быть пойманным?