[PYTHON]Gestire eccezione HTTPConnection

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
stormenito
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 390
Iscrizione: martedì 16 agosto 2005, 0:31

[PYTHON]Gestire eccezione HTTPConnection

Messaggio da stormenito »

Salve a tutti,

sto implementando uno script python che tramite minimalModbus e JSON e la libreria HTTPlib legge e invia dei dati da RS485 al sito emoncms; di base fuzniona tutto, i dati li raccoglie correttamente e li invia anche correttamente.
Il problema nasce dopo un lasso di tempo indefinito (a volte lo fa dopo due cicli, a volte dopo 100, ecc) dove lo script si blocca con la seguente dicitura:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1129, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 901, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 871, in _conn_request
    response = conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1027, in getresponse
    response.begin()
  File "/usr/lib/python2.7/httplib.py", line 407, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
    raise BadStatusLine(line)
Le motivazioni per cui succede forse le ho capite, e cioè potrebbe essere una momentaneo blocco della comunicazione in quanto lo sto provando tramite un modem HDSPA e sim card TIM, quindi potrebbe essere una questione di collegamento traballante; e questo ci può stare, visto che andrà presumibilmente a finire su un telecontrollo e sicuramente non avrà sempre una comunicazione eccellente.

Volevo chiedere se c'è qualche maniera per gestire questo "errore", magari tramite un try..catch.. o altro, per fare in modo che nel caso in cui una prima chiamata non andasse a buon fine non blocca lo script ma ritenta la connessione, continuando comunque a leggere dati nel frattempo.

Grazie mille in anticipo
Avatar utente
tomm
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 796
Iscrizione: lunedì 15 ottobre 2007, 10:16
Desktop: Gnome
Distribuzione: Ubuntu 16.04

Re: [PYTHON]Gestire eccezione HTTPConnection

Messaggio da tomm »

se ho capito bene dovrebbe essere sufficiente

Codice: Seleziona tutto

from httplib import BadStatusLine 
try:
  tuo codice.....
except BadStatusLine:
  continua...
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti