Maison  >  Article  >  développement back-end  >  Comment résoudre les erreurs de gestion des exceptions de Python ?

Comment résoudre les erreurs de gestion des exceptions de Python ?

王林
王林original
2023-06-24 20:22:011854parcourir

En Python, la gestion des exceptions est très importante. Pendant l'exécution du programme, des circonstances imprévues peuvent survenir, telles que des erreurs de saisie, des échecs de lecture de fichiers, etc., auquel cas le programme lèvera une exception. Si nous ne traitons pas ces exceptions à temps, le programme plantera ou même ne fonctionnera pas normalement. Par conséquent, il est très important d’apprendre à résoudre les erreurs de gestion des exceptions de Python.

Le contenu principal de cet article comprend les aspects suivants :

  1. Les types d'exceptions et leurs méthodes de gestion
  2. La signification du message d'erreur
  3. Classes d'exceptions personnalisées
  4. Meilleures pratiques pour la gestion des exceptions

1. Les types d'exceptions et leurs méthode de traitement

En Python, les types d'exceptions courants incluent :

  • SyntaxError : erreur de syntaxe
  • NameError : erreur de nom, la variable n'existe pas
  • TypeError : erreur de type, telle qu'une opération sur différents types de données
  • ValueError : numérique erreur, telle que la valeur d'entrée ne répond pas aux exigences
  • IndexError : erreur d'index, liste ou tuple hors limites
  • KeyError : erreur de clé, la clé n'existe pas dans le dictionnaire
  • IOError : erreur d'entrée et de sortie, telle car le fichier n'existe pas

Nous pouvons utiliser l'instruction try-sauf pour intercepter ces exceptions et les gérer. L'instruction try est utilisée pour exécuter du code pouvant provoquer des exceptions. Si une exception se produit, le bloc de code spécifié dans l'instruction except est exécuté pour gérer l'exception. Voici un exemple :

try:
    # 可能会出现异常的代码
except 异常类型 as 错误变量:
    # 处理异常的代码

Parmi eux, le type d'exception est l'exception que nous voulons intercepter, qui peut être de plusieurs types et peut être omise ; la variable d'erreur est le nom de la variable utilisé pour enregistrer les informations sur l'exception, qui peut être omis.

Par exemple, regardons la gestion des erreurs d'une division :

while True:
    try:
        num1 = int(input("请输入第一个数:"))
        num2 = int(input("请输入第二个数:"))
        result = num1 / num2
        print("结果为:", result)
    except ValueError:
        print("输入的必须是数字,请重新输入!")
    except ZeroDivisionError:
        print("第二个数不能是0,请重新输入!")

Dans cet exemple, nous utilisons deux instructions except pour gérer respectivement les exceptions ValueError et ZeroDivisionError. Si l'entrée n'est pas un nombre, une exception ValueError sera interceptée ; si le deuxième nombre est 0, une exception ZeroDivisionError sera interceptée.

2. La signification du message d'erreur

Lorsque le programme lève une exception, Python génère un message d'erreur. Comprendre la signification de ces messages d'erreur peut être très utile pour résoudre le problème. Vous trouverez ci-dessous quelques messages d'erreur courants et leur signification.

  • NameError : le nom 'xxx' n'est pas défini
    La variable xxx n'est pas définie. Il peut s'agir d'une faute d'orthographe ou d'une variable non définie.
  • TypeError : type(s) d'opérande non pris en charge pour + : 'int' et 'str'
    Erreur de type de données, les entiers et les chaînes ne peuvent pas être ajoutés.
  • ValueError : littéral invalide pour int() en base 10 : 'abc'
    Erreur de valeur, la chaîne abc ne peut pas être convertie en entier.
  • IndexError : index de liste hors plage
    Erreur d'index, un élément de liste inexistant a été accédé.
  • KeyError : 'xxx'
    Erreur de clé de dictionnaire, la clé xxx n'existe pas dans le dictionnaire.
  • IOError : [Errno 2] Aucun fichier ou répertoire de ce type : 'xxx'
    Erreur d'entrée et de sortie de fichier, le fichier xxx n'existe pas.

Grâce au message d'erreur, nous pouvons déterminer le type d'erreur du programme et essayer de les résoudre.

3. Classes d'exceptions personnalisées

En plus des types d'exceptions intégrés de Python, nous pouvons également personnaliser les classes d'exceptions pour gérer des exceptions spécifiques. Les classes d'exceptions personnalisées doivent hériter de la classe Exception et peuvent définir leurs propres propriétés et méthodes dans la classe. Voici un exemple simple :

class ValueTooSmallError(Exception):
    # 自定义异常类
    def __init__(self, value, min_value):
        self.value = value
        self.min_value = min_value
    
    def __str__(self):
        return f"输入的值{self.value}太小,最小值为{self.min_value}"

try:
    num = int(input("请输入一个大于10的数:"))
    if num < 10:
        raise ValueTooSmallError(num, 10)
except ValueTooSmallError as e:
    print(e)

Dans cet exemple, nous définissons une classe d'exception ValueTooSmallError pour gérer les cas où la valeur d'entrée est inférieure à 10. Si la valeur d'entrée est inférieure à 10, cette exception sera levée et la valeur d'entrée et la valeur minimale seront transmises en paramètres au constructeur de la classe ValueTooSmallError. Nous avons également réécrit la méthode __str__ pour générer des informations d'invite personnalisées.

4. Meilleures pratiques pour la gestion des exceptions

En Python, la gestion des exceptions est une compétence très importante. Voici quelques bonnes pratiques utilisées dans la programmation du monde réel :

  • Spécifier le type d'exception : dans une instruction except, il est préférable de spécifier un type d'exception spécifique. Cela évite de gérer des types d’exceptions non liés.
  • Utilisez l'instruction enfin : l'instruction enfin est utilisée pour le code qui sera exécuté après l'exécution du bloc try-sauf, qu'une exception se produise ou non. Nous plaçons généralement ici la libération des ressources, le nettoyage et tout autre code.
  • N'abusez pas de try-sauf : n'essayez pas de détecter les exceptions avec des instructions try-sauf dans tout votre programme. Cela réduira la lisibilité et la maintenabilité du programme. Les instructions Try-sauf doivent être limitées aux blocs de code qui doivent gérer les exceptions.
  • Enregistrer les informations sur les exceptions : dans le programme, les informations de chaque exception doivent être enregistrées, telles que le type d'erreur, l'heure de l'erreur, l'emplacement de l'erreur, etc., pour aider les programmeurs à trouver et à résoudre les problèmes.

Résumé

Grâce à l'introduction de cet article, nous avons découvert les types d'exceptions courants et leurs méthodes de gestion en Python. Nous avons également découvert la signification des messages d'erreur, les méthodes de personnalisation des classes d'exception et les meilleures pratiques en matière de gestion des exceptions. La maîtrise de ces méthodes peut nous aider à mieux résoudre les erreurs de gestion des exceptions en Python.

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!

Déclaration:
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