Accéder aux arguments (args) d'une exception
Dans cette étape, vous apprendrez à accéder aux arguments (args) associés à une exception en Python. Les arguments d'une exception peuvent fournir des détails plus spécifiques sur l'erreur qui s'est produite.
Modifions le fichier exceptions.py
que vous avez créé à l'étape précédente pour accéder et afficher les arguments de l'exception. Ouvrez exceptions.py
dans votre répertoire ~/project
en utilisant l'éditeur VS Code.
## exceptions.py
def divide(x, y):
try:
result = x / y
print("The result is:", result)
except Exception as e:
print("An error occurred:", type(e), e.args)
divide(10, 2)
divide(10, 0)
divide("hello", 5)
Dans ce code, nous avons modifié le bloc except
pour afficher e.args
. L'attribut args
est un tuple contenant les arguments qui ont été passés au constructeur de l'exception.
Maintenant, exécutons le script exceptions.py
:
python exceptions.py
Vous devriez voir la sortie suivante :
The result is: 5.0
An error occurred: <class 'ZeroDivisionError'> ('division by zero',)
An error occurred: <class 'TypeError'> ("unsupported operand type(s) for /: 'str' and 'int'",)
Comme vous pouvez le voir, la sortie inclut maintenant les arguments associés à chaque exception. Pour ZeroDivisionError
, l'argument est un tuple contenant la chaîne de caractères 'division by zero'
. Pour TypeError
, l'argument est un tuple contenant la chaîne de caractères "unsupported operand type(s) for /: 'str' and 'int'"
.
Modifions à nouveau le fichier exceptions.py
pour accéder directement au premier argument :
## exceptions.py
def divide(x, y):
try:
result = x / y
print("The result is:", result)
except Exception as e:
print("An error occurred:", type(e), e.args[0])
divide(10, 2)
divide(10, 0)
divide("hello", 5)
Exécutons le script à nouveau :
python exceptions.py
Vous devriez voir la sortie suivante :
The result is: 5.0
An error occurred: <class 'ZeroDivisionError'> division by zero
An error occurred: <class 'TypeError'> unsupported operand type(s) for /: 'str' and 'int'
En accédant à e.args[0]
, nous pouvons extraire le premier argument de l'exception, qui est souvent la partie la plus descriptive du message d'erreur.