Python et les erreurs¶
Plusieurs méthodes
try:
a = 1/0
except Exception, e:
syslog.syslog('[%s][ERROR][ERROR]: %s ' % (sys.argv[0],e))
#sys.argv[0] récupère le nom du programme
à partir de python 2.7
try:
a = 1/0
except Exception as e:
syslog.syslog('[%s][ERROR][ERROR]: %s ' % (sys.argv[0],e))
#sys.argv[0] récupère le nom du programme
pour obtenir l’ensemble des sorties obtenues dans la sortie standards
import traceback, sys
try:
a = 1/0
except Exception as e:
exc_type, exc_value, exc_traceback = sys.exc_info()
formatted_lines = traceback.format_exc().splitlines()
print ('\n'.join(formatted_lines))
gestion du type d’erreur
for arg in sys.argv[1:]:
try:
f = open(arg, 'r')
except IOError:
print 'cannot open', arg
else:
print arg, 'has', len(f.readlines()), 'lines'
f.close()
définition d’une classe erreur
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
try:
raise MyError(2*2)
except MyError as e:
print 'My exception occurred, value:', e.value