出现异常时重试 urllib 请求
Retry urllib request on exception
我的树莓派上有一个非常小而简单的 python 脚本,只要有活动的 Wi-Fi 连接,它就可以正常工作。树莓派连接到移动热点,它可能会失去连接,因为它可能会超出范围。一旦发生这种情况,它就会抛出异常并结束请求 "while" 循环。
我希望获得有关如何使此脚本暂停或 "ignore" 异常以便在连接恢复后立即返回循环的更多信息。
import urllib
import serial
from time import sleep
link = "http://myurl/"
while True:
f = urllib.urlopen(link)
myfile = f.read()
print myfile
ser = serial.Serial('/dev/ttyUSB0', 9600)
ser.write(myfile)
sleep(3)
您可以尝试一种称为(显然)try
语句的方法!
在你的 while
循环中,你可以使用 try: except
块来确保即使你的代码没有执行(你的 pi 失去连接或其他奇怪的事情发生)你也不会'不要结束程序!
这种类型的代码如下所示:
import urllib
import serial
from time import sleep
link = "http://myurl/"
while True:
try:
f = urllib.urlopen(link)
myfile = f.read()
print myfile
ser = serial.Serial('/dev/ttyUSB0', 9600)
ser.write(myfile)
sleep(3)
except:
sleep(3) #If the code executed in the try part fails, then your program will simply sleep off 3 seconds before trying again!
我的树莓派上有一个非常小而简单的 python 脚本,只要有活动的 Wi-Fi 连接,它就可以正常工作。树莓派连接到移动热点,它可能会失去连接,因为它可能会超出范围。一旦发生这种情况,它就会抛出异常并结束请求 "while" 循环。
我希望获得有关如何使此脚本暂停或 "ignore" 异常以便在连接恢复后立即返回循环的更多信息。
import urllib
import serial
from time import sleep
link = "http://myurl/"
while True:
f = urllib.urlopen(link)
myfile = f.read()
print myfile
ser = serial.Serial('/dev/ttyUSB0', 9600)
ser.write(myfile)
sleep(3)
您可以尝试一种称为(显然)try
语句的方法!
在你的 while
循环中,你可以使用 try: except
块来确保即使你的代码没有执行(你的 pi 失去连接或其他奇怪的事情发生)你也不会'不要结束程序!
这种类型的代码如下所示:
import urllib
import serial
from time import sleep
link = "http://myurl/"
while True:
try:
f = urllib.urlopen(link)
myfile = f.read()
print myfile
ser = serial.Serial('/dev/ttyUSB0', 9600)
ser.write(myfile)
sleep(3)
except:
sleep(3) #If the code executed in the try part fails, then your program will simply sleep off 3 seconds before trying again!