對於我的應用程序,我使用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循環或某物讀取一段代碼。相反,如果讀取失敗,我需要直接重做讀取直到它通過,然後繼續。
但是,我不知道如何做到這一點,沒有爲每個人閱讀,做上面提到的代碼。我試圖尋找一個「跳轉到」/「去」相當於上一行,但我找不到任何東西。有沒有什麼能讓我在例外情況下重複失敗的路線?
編寫一個函數來執行讀取循環,並調用函數。 – user2357112