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