On Error Resume Next en Python

Extrait 1

do_magic() # Throws exception, doesn't execute do_foo and do_bar
do_foo()
do_bar()

Extrait 2

try:
    do_magic() # Doesn't throw exception, doesn't execute do_foo and do_bar
    do_foo() 
    do_bar()
except:
    pass

Extrait 3

try: do_magic(); except: pass
try: do_foo()  ; except: pass
try: do_bar()  ; except: pass

Est-il un moyen d'écrire du code extrait 3 élégamment?

  • si do_magic() échoue ou non, do_foo() et do_bar() doit être exécutée.
  • si do_foo() échoue ou non, do_bar() doit être exécutée.

Dans Basic/Visual Basic/VBS, il y a une déclaration appelée On Error Resume Next qui le fait.

  • Et On Error Resume Next est un crime contre le flux de contrôle!
  • Vous pouvez décorer ces fonctions comme ici? stackoverflow.com/a/9386604/1532474
  • Vous seriez intéressé à la la Pièce A et la Pièce B.
  • Pour les débutants, il faut dire Extrait 3 ne fonctionne pas. En règle générale, je trouve que Python permet une ":" sur une ligne. Voir ma réponse tout à l'heure. @jonrsharpe, c'est tout simplement ridicule. J'utilise python maintenant, et comme l'OP, je trouve beaucoup de choses en VBA qui n'ont pas de simple remplacement dans une autre langue. VBA de vérification d'erreur est assez profonde, si vous savez comment l'utiliser.
InformationsquelleAutor Elmo | 2014-09-26