Wpis z mikrobloga

#python #programowanie

Chce w funkcji f3 przechwycić wyjątek z f1. Teraz tylko wywala mi wyjątek z f1 a nie przekazuje go dalej i nie obsługuje w f3. Da sie to zrobić w pythonie?

class ValueBelowZeroError(Exception):
"""Raised when the input value is below zero"""
pass

def f_1(a):
if a < 0:
raise ValueBelowZeroError("a < 0")
else:
return a + 1

def f_2(a, b):
return f_1(a) + b

def f_3(res):
result = None
try:
result = res
except ValueBelowZeroError as e:
print("catched: " + e)
else:
return result
finally:
print("finally...")

print(f_3(f_2(-1, 3)))
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dean_corso: ogólnie to mam główną funkcje X która wywołuje z 5 innych i na samym końcu jest funkcja zwracająca dane z api i w przypadku 401 chciałem zwracać błąd i obsługiwać to w dekoratorze dla głównej funkcji. W takim razie w przypadku 401 będe zwracać po prostu ten kod 401 i go obslugiwać, dzięki.
  • Odpowiedz