Pour mon application, j'utilise l'interface python pour lire les registres d'un microcontrôleur. Parfois, la lecture échoue et provoque une exception. Idéalement, ce que je voudrais faire est une exception, je voudrais revenir à la même ligne qui avait une exception et le refaire. Cela signifie essentiellement revenir à la déclaration qui a échoué à la lecture d'un registre. Je peux pour une seule lecture faire ce qui suit:En Python sur les exceptions, comment refaire la ligne qui a provoqué l'exception
while ReadSuccess == 0:
try:
readregister();
faultReadSuccess = 1
except (KeyboardInterrupt, SystemExit):
print "Program manually stopped through Ctrl-C"
raise
except:
faultReadSuccess = 0
print "Reading failure"
time.sleep(.5)
Ceci essentiellement sur une seule lecture ne fait que répéter la lecture jusqu'à ce qu'il passe. Cependant, j'ai plusieurs commandes de lecture de registre dispersées dans mon programme et ce sont des lectures sensibles au débit, et je ne peux pas commencer au début du code ou une section de code avec les lectures à travers une boucle while ou quelque chose. Au contraire, si une lecture échoue, je dois directement refaire cette relecture jusqu'à ce qu'elle passe, puis continuer.
Cependant, je ne sais pas comment le faire sans pour chaque lecture individuelle, faites le code mentionné ci-dessus. J'ai essayé de chercher un "saut à"/"aller à" l'équivalent de la ligne précédente, mais je ne trouve rien. Y a-t-il quelque chose qui me permettrait de faire une exception en répétant simplement la ligne qui a échoué?
Écrivez une fonction pour exécuter la boucle de lecture et appelez la fonction. – user2357112