在Python异常中,如何重做导致异常的行

2024-09-24 06:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的应用程序,我使用python接口来读取微控制器的寄存器。有时,读取失败并导致异常。理想情况下,我想做的是一个例外,我想回到有异常的同一行,并重新做。这意味着,基本上返回在读取寄存器时失败的语句。我可以一读就做以下操作:

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)  

这基本上是在一个读重复读直到它通过。然而,我有几个寄存器读取命令分散在我的程序中,这些都是流敏感的读取,我不能仅仅从代码的开头或一段代码开始,通过while循环或其他东西来读取。相反,如果一个读取失败,我需要直接重做一遍,直到它通过,然后继续。

但是,我不知道如何做到这一点,不需要每个人读,做上面提到的代码。我试着找一个“跳到”/“转到”上一行等价的,但我找不到任何东西。有什么东西能让我异常的重复失败的行吗?


Tags: 代码应用程序情况语句寄存器printtry微控制器