La gestion des erreurs en Python se fait à l’aide des instructions `try` et `except`. Elle permet de traiter les exceptions (erreurs) qui peuvent survenir durant l’exécution d’un programme. Voici comment elle fonctionne :
1. On commence par le bloc `try`, qui contient le code qui pourrait générer une exception.
1. Si aucune exception n’est générale durant l’exécution du bloc `try`, le bloc `except` est ignoré et le programme continue normalement.
1. Si une exception se produit durant l’exécution du bloc `try`, l’exécution de ce bloc est immédiatement arrêtée. Ensuite, le bloc `except` est exécuté. Ce bloc contient le code qui permet de gérer ou d’ignorer l’exception.
Voici un exemple :
```
try:
x = 1 / 0 # Ceci génère une exception car on ne peut pas diviser par zéro
except:
x = 0 # Après génération de l’exception, ce code est exécuté
```
Dans cet exemple, une ‘ZeroDivisionError’ est générée quand on essaie de diviser par zéro. Cependant au lieu de finir en erreur, le programme exécute le bloc `except` et assigne la valeur `0` à `x`.
Pour traiter différentes exceptions de manière différente, on peut utiliser plusieurs blocs `except`, chacun gérant une type d’exception spécifique. Par exemple :
```
try:
# code
except ZeroDivisionError:
# gestion de la division par zéro
except TypeError:
# gestion d’une erreur de type
```
Dans ce cas, si l’exception générée est de type `ZeroDivisionError`, seul le premier bloc `except` sera exécuté. Si l’exception est de type `TypeError`, c’est le second bloc `except` qui sera exécuté.
Enfin, on peut ajouter un bloc `else` après les blocs `except`. Le code qu’il contient sera exécuté si et seulement si aucune exception n’a été générée dans le bloc `try`. Et un bloc `finally` peut être utilisé pour exécuter du code qui doit être exécuté indépendamment de la génération d’exceptions.