web-dev-qa-db-fra.com

En Python, quelle est la différence entre 'sauf Exception en tant que e' et 'sauf Exception, e'

En python, il y a deux façons d'attraper une exception

except Exception, e:

except Exception as e:

Il semble que "en tant que" soit celui à utiliser pour aller de l'avant. Dans quelle version de python cela a-t-il changé? Une idée pourquoi?

92
Nathan

Ce PEP introduit des modifications destinées à éliminer les ambiguïtés de la grammaire de Python, à simplifier les classes d’exception, à simplifier la récupération de place pour les exceptions et à réduire la taille du langage dans Python 3.0.

PEP 3110: "Catching Exceptions in Python 3000"

48

Réponse courte pour le pourquoi: Exception, e et Exception, TypeError sont difficiles à distinguer. Réponse longue: ce que Ignacio a dit.

15
nmichaels

La première proposition d'utilisation de "as" est la suivante: http://mail.python.org/pipermail/python-dev/2006-March/062449.html . Ils ont pensé qu'il serait plus intuitif de lire le code

14
Fábio Diniz