Maison > développement back-end > Tutoriel Python > Gestion des exceptions en Python

Gestion des exceptions en Python

Mary-Kate Olsen
Libérer: 2024-12-06 20:19:12
original
777 Les gens l'ont consulté

Exception Handling in Python

Cet article explore les différentes techniques utilisées pour gérer les exceptions en Python, notamment les blocs try-sauf, les exceptions personnalisées et les fonctionnalités avancées telles que le chaînage et l'enrichissement des exceptions.


Python fournit un cadre robuste de gestion des exceptions qui permet non seulement aux programmeurs d'implémenter du code qui évite les plantages, mais offre également des commentaires et maintient la stabilité des applications. De plus, il permet aux développeurs de gérer les erreurs de manière gracieuse à l'aide de constructions telles que des blocs try-sauf, des exceptions personnalisées, etc.

- Le bloc Try-Except

Dans le bloc try-sauf, le code qui peut déclencher une exception est placé dans le bloc try, et le bloc except spécifie les actions à entreprendre si une exception se produit (Python Software Foundation, s.d.).

Par exemple :

try:
    result = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero.")
Copier après la connexion
Copier après la connexion

Pour intercepter plusieurs exceptions dans un bloc try-sauf, nous pouvons utiliser un bloc try avec plusieurs blocs except pour générer des réponses spécifiques pour chaque type d'exception. Ou bien, nous pouvons utiliser un tuple pour intercepter plusieurs exceptions avec une seule expression d'exception.

Par exemple :

# One try block and several except blocks
try:
    result = 1 / 'a'
except ZeroDivisionError:
    print("Cannot divide by zero.")
except TypeError:
    print("Type error occurred.")

# One try block and one except tuple block
try:
    # some operation
    result = 1 / 'a'
except (ZeroDivisionError, TypeError) as e:
    print(f"Error occurred: {e}")
Copier après la connexion
Copier après la connexion

- La clause Else

La clause else est placée après les blocs try-sauf et s'exécute si le bloc try ne déclenche pas d'exception.

Par exemple :

try:
    result = 1 / 2
except ZeroDivisionError:
    print(“Cannot divide by zero.”)
else:
    print(“Division successful.”)
Copier après la connexion

- La clause finale

La clause finale est toujours placée après le bloc try ou tout bloc except. Il contient du code qui s'exécute quoi qu'il arrive, généralement pour nettoyer des ressources telles que des fichiers ou des connexions réseau, même si une exception a été levée.

Par exemple :

try:
    result = 1 / ‘a’
except ZeroDivisionError:
    print(“Cannot divide by zero.”)
except TypeError:
    print(“Type error occurred.”)
else:
    print(“Division successful.”)
finally:
    print(“Goodbye, world!”)
Copier après la connexion
  • La déclaration d'augmentation

Lever des exceptions : la clause raise déclenche des exceptions en forçant une exception à se produire, généralement pour indiquer qu'une certaine condition n'a pas été remplie.

Par exemple :

if ‘a’ > 5:
    raise ValueError(“A must not exceed 5”)
Copier après la connexion

- Chaînage d'exceptions

Vous pouvez enchaîner les exceptions avec la clause raise. Ceci est utile pour ajouter du contexte à une erreur originale.

Par exemple

try:
    open(‘myfile.txt’)
except FileNotFoundError as e:
    raise RuntimeError(“Failed to open file”) from e
Copier après la connexion

- Exceptions personnalisées

Vous pouvez définir vos propres classes d'exception en héritant de la classe Exception ou de toute autre classe d'exception intégrée (Mitchell, 2022).

Par exemple :

class My_custom_ (Exception):
    pass

try:
    raise MyCustomError(“An error occurred”)
except MyCustomError as e:
    print(e)
Copier après la connexion

- Enrichir les exceptions

vous pouvez ajouter des informations ou du contexte à une exception en utilisant la méthode add_note() pour « ajouter » des messages ou des notes personnalisés à l'objet d'exception, alias e.

Par exemple :

def divide_numbers(a, b):
    try:
        result = a / b
    except ZeroDivisionError as e:
        e.add_note(“Cannot divide by zero”)
        e.add_note(“Please provide a non-zero divisor”)
        raise
try:
    num1 = 10
    num2 = 0
    divide_numbers(num1, num2)
except ZeroDivisionError as e:
    print(“An error occurred:”)
    print(str(e))
Copier après la connexion

La gestion des exceptions est importante pour plusieurs raisons :

  1. Empêche les plantages du programme : des exceptions non gérées peuvent provoquer le plantage du programme, entraînant une perte de données et une mauvaise expérience utilisateur.
  2. Fournit des messages d'erreur significatifs : en gérant les exceptions, vous pouvez fournir aux utilisateurs des messages d'erreur informatifs qui les aident à comprendre ce qui n'a pas fonctionné et comment y remédier.
  3. Permet une dégradation progressive : la gestion des exceptions permet au programme de continuer à s'exécuter même si une erreur se produit.

Un exemple simple de gestion des erreurs de programme :

try:
    result = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero.")
Copier après la connexion
Copier après la connexion
# One try block and several except blocks
try:
    result = 1 / 'a'
except ZeroDivisionError:
    print("Cannot divide by zero.")
except TypeError:
    print("Type error occurred.")

# One try block and one except tuple block
try:
    # some operation
    result = 1 / 'a'
except (ZeroDivisionError, TypeError) as e:
    print(f"Error occurred: {e}")
Copier après la connexion
Copier après la connexion

Pour résumer, Python fournit un cadre complet de gestion des exceptions qui permet aux programmes de gérer des situations inattendues sans échouer brusquement. En utilisant des constructions telles que des blocs try-sauf, des exceptions personnalisées et des fonctionnalités avancées telles que le chaînage et l'enrichissement des exceptions, les développeurs peuvent garantir que leurs programmes sont résilients, conviviaux et capables de gérer des scénarios inattendus avec élégance.


Références :

Mitchell R (13 juin 2022). Exceptions personnalisées. _Formation essentielle Python _[VIDÉO]. Apprentissage LinkedIn. https://www.linkedin.com/learning/python-essential-training-14898805/custom-exceptions?autoSkip=true&resume=false&u=2245842

Fondation logicielle Python. (s.d.). 8. Erreurs et exceptions. Python. python.org.


Publié à l'origine dans Exception Handling in Python - Medium le 21 août 2024.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal