il mio listato viene eseguito ogni 15 min. su Raspberry.
Una parte di comandi agiscono in locale, altri hanno bisogno di connessione Internet.
A me piacerebbe che in mancanza di connessione lo script non s'interrompesse in modo che i comandi che agiscono in locale vengano portati a termine.
Pertanto ho usato questo codice di verifica connessione prima delle chiamate che agiscono via Internet.
Codice: Seleziona tutto
try:
from urllib.request import urlopen
try:
with urlopen('https://www.google.com') as up:
print('Connessione attiva, verificato con try')
a=23*78
print("Dopo la verifica connessione esegue il comando successivo\n il prodotto tra 23 e 78 è uguale a ",a)
errore#se c'è un errore non mi fa il traceback quindi non posso raccogliere gli errori in un file
except BaseException as ex:
print('Connessione non attiva, verificato con try')
A me piacerebbe controllare se ci sono state delle disconnessioni per cui le funzione che utilizzano connessioni vengono saltate.
A questo scopo ho usato tale codice ma non funziona, in quanto appunto il precedente non produce traceback dopo la verifica della connessione anche in presenza di un errore palese (errore appunto non l'ho definito prima).
Come posso risolvere?
Codice: Seleziona tutto
import traceback
from datetime import datetime
try:
from urllib.request import urlopen
try:
with urlopen('https://www.google.com') as up:
print('Connessione attiva, verificato con try')
a=23*78
print("Dopo la verifica connessione esegue il comando successivo\n il prodotto tra 23 e 78 è uguale a ",a)
errore#se c'è un errore non mi fa il traceback quindi non posso raccogliere gli errori in un file
except BaseException as ex:
print('Connessione non attiva, verificato con try')
except:
ora=datetime.now()
ora=ora.strftime("%H:%M:%S")
print (ora)
filename=ora+"errorInfo.txt"
print(filename)
#e lo inserisce in una specifica cartella "errori"
errorFile=open ('/home/Pasquale/Documenti/PythonEsercizi/EccezioniDebug/errori'+str(filename) ,'w')
errorFile.write(traceback.format_exc())
errorFile.close()
print('Le informazioni di traceback sono state scritte nel file ',filename)
Saluti
LaPa