Le contenu du didacticiel Python (chapitre 8) est résumé dans une puce.
Article précédent: Bulletin du contenu du tutoriel Python (Chapitre 7) (en construction)
introduction
Examen de base pour la certification d'ingénieur Python3 En guise de contre-mesure, il s'agit d'un mémo personnel qui résume le contenu du didacticiel Python (livre) dans des bulletins faciles à mémoriser.
Matériel de référence
Tutoriel Python: https://docs.python.org/ja/3/tutorial/
Chapitre 8: https://docs.python.org/ja/3/tutorial/errors.html
Livres: https://www.oreilly.co.jp/books/9784873117539/
"Chapitre 8 Erreurs et exceptions"
- Score d'examen de base de la certification d'ingénieur Python3
―― 4/40 questions (10,0%) ☆☆ ★★★ (Importance: Moyenne-)
--Thème
--Erreur de syntaxe
--Exceptions (exceptions intégrées et exceptions définies par l'utilisateur)
- Gestion des exceptions (essayez, sauf, sinon, enfin)
--raise déclaration
8.1 Erreur de syntaxe
- ** SyntaxError ** est détecté avant l'exécution par le ** parser **.
- L'analyseur utilise une petite flèche pour indiquer où l'erreur de syntaxe a été trouvée pour la première fois.
--La cause de l'erreur est le jeton avant la flèche.
- Le nom du fichier et le numéro de ligne sont également affichés.
8.2 Exception
- ** exception ** est détectée lors de l'exécution. Il existe les deux types suivants.
- ** Exceptions intégrées ** ... Exceptions intégrées fournies par Python.
- ** Exceptions définies par l'utilisateur ** ... Exceptions définies par l'utilisateur.
--Il existe différents types d'exceptions et les types sont décrits dans le message.
--Dans l'exception intégrée, le type et le nom apparaissant dans le message correspondent toujours.
- La correspondance est facultative pour les exceptions définies par l'utilisateur.
- La plupart des exceptions ne sont pas gérées par le programme et le résultat apparaît dans le message d'erreur.
- La première moitié du message d'erreur montre le contexte dans lequel l'exception s'est produite sous la forme d'un suivi de pile.
- Ne pas afficher les lignes lues à partir de l'entrée standard.
- La dernière ligne du message d'erreur décrit ce qui s'est passé.
- Les détails du type et de la cause de l'exception sont donnés plus loin dans la ligne.
8.3 Gestion des exceptions
-L'instruction ** try ** vous permet de gérer l'exception sélectionnée.
L'instruction try comprend les éléments suivants. Les clauses try et except sont obligatoires, et les clauses else et finally peuvent être omises.
- ** clause try **
Bloquer en cours d'essai:. Écrivez en haut de l'instruction try.
Ecrivez un processus qui peut lever une exception.
- ** sauf clause **
sauf [nom d'exception] [comme nom de variable]: Bloquer sous. Écrivez sous la clause try.
Ecrivez le traitement lorsqu'une exception est levée.
--Il est également possible d'écrire plusieurs clauses except.
- Si vous omettez le nom de l'exception, vous pouvez intercepter toutes les exceptions.
--as Si un nom de variable est spécifié, une instance d'exception sera affectée à la variable.
- Les arguments sont stockés dans l'attribut ** args **.
- Puisque ** \ _ \ _ str () \ _ \ _ method ** est définie dans l'instance d'exception, elle peut être affichée directement par print (nom de l'instance) sans faire référence à l'attribut args.
- En énumérant les exceptions dans un taple, il est possible d'intercepter plusieurs exceptions dans une clause except.
- ** clause else **
Bloquer sous else:. Écrivez ci-dessous la clause except.
Ecrivez le traitement lorsqu'une exception n'est pas levée dans la clause try.
- ** clause finally **
Le bloc sous finalement:. Écrivez au bas de l'instruction try.
[Processus de nettoyage] à la fin de l'instruction try (https://qiita.com/Wakii/items/4ffcba348e31e7e141fc#86-%E3%82%AF%E3%83%AA%E3%83%BC%E3 % 83% B3% E3% 82% A2% E3% 83% 83% E3% 83% 97% E5% 8B% 95% E4% BD% 9C% E3% 81% AE% E5% AE% 9A% E7% BE Écrivez% A9).
- L'ordre d'exécution des instructions try est le suivant.
- La clause try est exécutée en premier.
- Si aucune exception n'est levée dans la clause try, la clause except est ignorée.
- S'il existe une clause else, exécutez-la.
- Si une exception est levée dans la clause try, le reste de la clause try et la clause else sont ignorés.
--Si une clause except correspond à l'exception, exécutez-la.
- S'il n'y a pas de clause except qui correspond à l'exception, relancez l'exception à l'instruction try de niveau supérieur, le cas échéant.
- S'il y a une clause finally, elle sera exécutée avant de la renvoyer.
- S'il n'y a pas d'instruction try supérieure, le message ** exception non gérée ** s'affiche et le traitement se termine.
- Les exceptions qui se produisent dans les fonctions appelées directement ou indirectement à partir de la clause try sont également traitées dans la clause except.
- S'il y a une clause finally, exécutez-la indépendamment du fait qu'une exception soit levée ou non, et terminez l'instruction try.
8.4 Lancer une exception
-Vous pouvez également utiliser l'instruction ** rise ** pour lever de force une exception spécifiée dans le programme.
--Écrire sous la forme de relance [exception].
- L'exception spécifiée peut être une classe d'exception ou une instance d'exception.
- Si vous n'écrivez que rais sans spécifier d'argument dans la clause except, l'exception interceptée est relancée.
8.5 Exceptions définies par l'utilisateur
- Vous pouvez également créer et gérer vos propres classes d'exceptions.
- La classe d'exception doit normalement être une classe dérivée de la ** classe d'exception **.
- Le nom de la classe d'exception doit être "~ Error", tout comme les exceptions standard.
―― Comme une classe normale, vous pouvez remplacer les méthodes d'une classe d'exception, mais vous ne faites généralement pas de choses compliquées.
- Lors de l'écriture d'un module qui génère diverses erreurs, il est courant de définir d'abord la classe de base pour les exceptions et de traiter les erreurs individuelles comme des sous-classes.
8.6 Définition du comportement de nettoyage
- Le traitement de nettoyage est enfin la clause (-> [8.3 Traitement des exceptions](https://qiita.com/Wakii/items/4ffcba348e31e7e141fc#83-%E4%BE%8B%E5%A4%96%E3%81% AE% E5% 87% A6% E7% 90% 86))).
- Utilisé pour le traitement que vous souhaitez exécuter indépendamment de la présence ou de l'absence d'exceptions, telles que la libération de ressources externes.
- S'il y a une exception non prise en charge dans la clause except, exécutez le traitement dans la clause finally, puis renvoyez-le.
- La clause finally est également exécutée lors de la sortie d'autres clauses de l'instruction try avec break, continue, retuen, etc.
8.6.1 Comportement de nettoyage défini sur un objet
- Certains objets ont un processus de nettoyage défini lorsqu'ils ne sont plus nécessaires.
- Si vous utilisez ** with statement ** pour traiter un objet, Python le nettoiera de manière appropriée immédiatement après son utilisation.
Article suivant: Le contenu du didacticiel Python (chapitre 9) est résumé dans une puce (en cours de construction).