У меня был скрипт Python, который работал непрерывно.Если в каталоге есть какой-либо новый файл, то питон откроет URL с помощью urllib2, чтобы выполнить какой-либо запрос на конкретном IP.
Вот код
encoded_string = base64.b64encode(image_file.read())
values = dumps({
'image_data':encoded_string,
'requestCode':'111'
})
headers = {"Content-Type": "application/json"}
request = Request("http:/xx.xxx.xx.xxx/api/carplate_service",data=values, headers=headers)
response = urlopen(request, timeout=60)
Код работает хорошо, но наугадвремя, скажем, обычно происходило в 1-2 часа ночи, затем я получил эту ошибку:
<class 'urllib2.URLError'> - <urlopen error [Errno 110] Connection timed out>
У меня было исключение для этой функции на этом рисунке:
try:
ip = sys.argv[1]
histId = int(sys.argv[2])
handler = ModHandler()
wm = pyinotify.WatchManager()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch('./' + ip + '/', pyinotify.IN_CLOSE_WRITE)
notifier.loop()
except BaseException as e:
with open("error.log", "a") as text_file:
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
text_file.write( time.strftime("%Y-%m-%d %H:%M:%S") + " [" + str(exc_tb.tb_lineno) + " - " + fname + "] : " + str(exc_type) + " - " + str(e) + "\n")
text_file.close();
Исключение не работаетхорошо, потому что приложение не может продолжаться, если есть какая-то ошибка, как указано выше.
Мой вопрос заключается в том, как заставить программу продолжать работу даже при генерации исключения?
Я использую python2.6
Спасибо