Le mécanisme de gestion des exceptions de Python est conçu pour gérer gracieusement les erreurs ou les événements inattendus lors de l'exécution du programme. La construction principale pour la manipulation des exceptions dans Python est le bloc try-except
. Voici comment cela fonctionne:
try
.try
, le contrôle est immédiatement transféré dans un bloc except
qui gère l'exception. Python permet à plusieurs blocs except
de gérer différents types d'exceptions.else
peut être utilisé pour exécuter du code lorsqu'aucune exception n'est élevée dans le bloc try
.finally
est exécuté, que ce soit une exception ou non, souvent utilisée pour les actions de nettoyage.Exemple:
<code class="python">try: result = 10 / 0 except ZeroDivisionError: print("Cannot divide by zero!") else: print("Division successful") finally: print("Execution completed")</code>
Pour créer des exceptions personnalisées dans Python, vous pouvez définir une nouvelle classe qui hérite de la classe Exception
intégrée ou de l'une de ses sous-classes. Voici comment le faire:
Exception
ou d'une classe d'exception plus spécifique.Exemple de création d'une exception personnalisée:
<code class="python">class CustomError(Exception): """A custom exception class""" def __init__(self, message, error_code): self.message = message self.error_code = error_code super().__init__(f"{self.message} (Error Code: {self.error_code})") try: raise CustomError("Something went wrong", 500) except CustomError as e: print(e)</code>
L'utilisation d'exceptions personnalisées dans Python offre plusieurs avantages:
La gestion des exceptions peut améliorer considérablement la robustesse des programmes Python de plusieurs manières:
finally
garantit que des ressources comme les poignées de fichiers ou les connexions réseau sont correctement fermées, même si une erreur se produit, ce qui empêche les fuites de ressources.Python comprend une variété d'exceptions intégrées qui sont utilisées pour gérer les scénarios d'erreur courants. Voici quelques-uns des plus courants:
Syntaxerror: soulevé lorsque l'analyseur rencontre une erreur de syntaxe. Cette exception aide à identifier les problèmes de syntaxe dans le code.
<code class="python">try: eval("print 'Hello, World!'") # Syntax error in Python 3 except SyntaxError as e: print(e)</code>
TypeError: soulevé lorsqu'une opération ou une fonction est appliquée à un objet d'un type inapproprié.
<code class="python">try: result = "a string" 123 except TypeError as e: print(e)</code>
ValueError: soulevé lorsqu'une fonction reçoit un argument du type correct mais une valeur inappropriée.
<code class="python">try: int("not a number") except ValueError as e: print(e)</code>
INDEXERROR: Soulevé lorsqu'un indice de séquence est hors de portée.
<code class="python">try: my_list = [1, 2, 3] print(my_list[10]) except IndexError as e: print(e)</code>
Keyerror: élevé lorsqu'une clé de dictionnaire n'est pas trouvée.
<code class="python">try: my_dict = {"a": 1, "b": 2} print(my_dict["c"]) except KeyError as e: print(e)</code>
ZerodivisionError: soulevé lorsque le deuxième argument d'une division ou d'un opération de modulo est nul.
<code class="python">try: result = 10 / 0 except ZeroDivisionError as e: print(e)</code>
Ces exceptions intégrées aident les développeurs à gérer efficacement les erreurs courantes et à rendre leur code plus robuste et résistant aux erreurs.
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!