Я не уверен, зачем нам finally в операторах try...except...finally. На мой взгляд, этот кодовый блок
try:
run_code1()
except TypeError:
run_code2()
other_code()
совпадает с этим с помощью finally:
try:
run_code1()
except TypeError:
run_code2()
finally:
other_code()
Я что-то пропустил?