def B(x):
if x<0:
raise LogicError("I dont like negative numbers", x)
else:
return x
def A(x):
try:
print(f"Starting A({x})")
return B(x)
finally:
print(f"finished A({x})")
for i in [-1, 0, 1]:
try:
y=A(i)
print(f"A({i})={y}")
except Exception as x:
print(f"failed running A({i}): ", )
Starting A(-1)
finished A(-1)
failed running A(-1):
Starting A(0)
finished A(0)
A(0)=0
Starting A(1)
finished A(1)
A(1)=1