Une exception est un événement inattendu qui se produit lors de l'exécution du programme. C'est également connu sous le nom d'erreur d'exécution. Lorsque cette erreur se produit, Python génère une exception lors de l'exécution et qui peut être gérée, ce qui empêche votre programme de s'interrompre. Dans cet article, nous allons nous concentrer sur « Comment pouvons-nous imprimer une exception en Python ? »
Qu’est-ce qu’une exception en Python ?
Dans Python , L'exception est un type d'erreur dans le programme. Une erreur est appelée « exception » lorsque le programme est syntaxiquement correct, mais qu’une erreur se produit lors de son exécution.
Exemple : Dans l'exemple, nous essayons de diviser un nombre par zéro pour obtenir une erreur d'exécution.
Python3
conversion nfa en dfa
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
>
Sortir
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
Ce programme est syntaxiquement correct . Le seul problème ici est dû aux numéros utilisés pour l’opération. Puisque nous ne pouvons diviser aucun nombre par 0, cela génère une erreur. Il s’agit donc d’un exemple d’« exception ».
À quoi ressemblent les exceptions ?
Dans le programme ci-dessus, lorsque nous l'avons exécuté, nous avons obtenu une exception. L'erreur générée indiquait la ligne sur laquelle l'erreur s'est produite, la ligne exacte et le type d'erreur.
Le type d’erreur affiché est appelé « Exception ». Grâce aux exceptions, nous prenons connaissance du problème survenu. L'exception dans le programme ci-dessus est ZeroDivisionError : division par zéro .
Exemple : Ici, l'affectation de la variable var1 se fait par un variable indéfinie , var2.
Python3
var1>=> var2> |
>
>
Sortir
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
Ci-dessus, nous pouvons voir l'exception comme NameError : le nom « var2 » n'est pas défini .
Gestion des exceptions en Python
Les exceptions peuvent parfois être très gênantes. C'est ici qu'intervient le concept de gestion des exceptions. Grâce à la gestion des exceptions, nous pouvons facilement gérer les exceptions pour l'utilisateur au lieu de simplement lui envoyer des erreurs.
Exemple : Dans ce programme, l'entrée est prise dans le type « int ». Mais si nous y entrons un caractère, cela générera une « ValueError ». Cela peut souvent dérouter l’utilisateur. C'est ici que nous effectuons la gestion des exceptions. Au lieu de générer une erreur de valeur et de confondre l'utilisateur, nous afficherons une instruction suggérant à l'utilisateur de réessayer et nous donnerons à l'utilisateur la possibilité d'essayer de saisir à nouveau les chiffres.
Python3
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
langage groovy
>
Sortir
Enter num1: 1 Enter num2: b Traceback (most recent call last): File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b'> Utiliser try, sauf et sinon
Dans ce code, la boucle while est exécutée car nous voulons laisser l'utilisateur essayer jusqu'à ce que l'entrée soit donnée de la manière correcte. Nous avons utilisé la clause « try ». La clause try vérifie les erreurs dans les lignes de cette clause.
Si une exception est rencontrée, il passe à la clause « except » et imprime le message d'erreur que nous avons fourni. Nous avons écrit deux clauses except, une avec ValueError et l'autre avec ZeroDivisionError. Chacune de ces clauses traite des exceptions respectives et imprime les messages respectifs.
Puis enfin, nous avons écrit la clause else. Si aucune erreur n’est rencontrée, le bloc else est exécuté. Dans le bloc else, nous imprimons le quotient de la division et sortons de la boucle.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as e:> >print>(>'Try putting an integer value.
Error Occured:'>, e)> >except> ZeroDivisionError as ex:> >print>(>'Division by zero is invalid!
Error Occured:'>, ex)> >else>:> >print>(answer)> >break> |
>
>
Sortir:
tableau de tri Java

Exceptions d'impression
Maintenant que nous avons vu ce que sont exactement les exceptions, à quoi elles ressemblent et comment les gérer, nous allons maintenant examiner leur impression.
Pour imprimer les exceptions, nous utilisons 'comme' mot-clé de Python.
Nous avons utilisé le même exemple que nous avons utilisé auparavant. Nous avons utilisé le mot-clé « as » et déclaré la variable « ve » pour « ValueError » et « zde » pour « ZeroDivisionError ». Ensuite, si nous rencontrons des exceptions, nous avons écrit le code pour imprimer cette exception. Mais nous ne sommes toujours pas en mesure de voir le type d’exception que nous avons obtenu.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(ve)> >except> ZeroDivisionError as zde:> >print>(zde)> >else>:> >print>(answer)> >break> |
qu'est-ce qu'un double Java
>
>
Sortir:
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0>
Type d'exception d'impression
Pour voir le type d’exception, nous pouvons utiliser la fonction type().
Ici, nous avons utilisé la fonction type() pour connaître le type d'exception que nous avons rencontré lors de l'exécution du code.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(>type>(ve), ve)> >except> ZeroDivisionError as zde:> >print>(>type>(zde), zde)> >else>:> >print>(answer)> >break> |
>
>
Sortir
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0 division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0>