Friendly error messages - en Français¶
Un des buts d’AvantPy est de fournir des rétroactions plus conviviales que les fameux tracebacks de Python lorsqu’une exception survient. Ci-dessous, on peut voir quelques exemples. Le but éventuel est de documenter ici tous les exemples possibles tels qu’interprétés par AvantPy.
Note
Le contenu de cette page a été généré par l’exécution de
tb_pyfr.py situé dans le répertoire tests/
.
Ceci a besoin d’être fait de manière explicite lorsqu’on veut
faire des corrections ou des ajouts, avant de faire la mise
à jour du reste de la documentation avec Sphinx.
AvantPy version: 0.0.15a Python version: 3.7.3
IfNobreakError¶
Erreur de syntaxe AvantPy :
IfNobreakError: Keyword nobreak found matching if/elif
Le mot-clé 'pasinterrompu' spécifique à Avantpy ne peut pas être utilisé
dans un énoncé 'si/sinonsi/sinon' (Python: if/elif/else).
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_if_nobreak.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise IfNobreakError'''
2: si Vrai:
3: passer
-->4: pasinterrompu:
^
MismatchedBracketsError¶
Erreur de syntaxe AvantPy :
MismatchedBracketsError: Closing bracket found matching a different opening one.
Le symbole gauche ( ne correspond pas au symbole droit ].
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_mismatched_brackets.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
3: 2,
4: 3, 4,
5: 5
-->6: ]
^
MissingLeftBracketError¶
Erreur de syntaxe AvantPy :
MissingLeftBracketError: Closing bracket found with no matching opening one
Le symbole droit ) n'a pas de symbole gauche correspondant.
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_missing_left_bracket.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
2: a = (1,
3: 2,
4: 3, 4,)
-->5: )
^
MissingRepeatColonError¶
Erreur de syntaxe AvantPy :
MissingRepeatColonError: Missing colon on line beginning with repeat
Un énoncé débutant avec le mot clé 'répéter' spécifique à Avantpy
doit être sur une seule ligne terminant avec deux points (:) qui indiquent
le début d'un bloc de code de code indenté, sans qu'il n'y ait
d'autre deux points qui apparaissent sur cette ligne.
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_missing_repeat_colon.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise MissingRepeatColonError'''
2: x = 0
-->3: répéter jusquà (x ==
^
MissingRepeatError¶
Erreur de syntaxe AvantPy :
MissingRepeatError: until and forever must be preceeded by repeat
Le mot-clé 'jusquà' spécifique à Avantpy peut seulement être utilisé
s'il est précédé de 'répéter'.
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_missing_repeat.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise MissingRepeatError'''
2: x = 0
-->3: jusquà x == 2:
^
NameError¶
Exception Python:
NameError: name 'c' is not defined
Une exception NameError indique que le nom d'une variable
ou d'une fonction n'est pas connue par Python.
Habituellement, ceci indique une simple faute d'orthographe.
Cependant, cela peut également indiquer que le nom a été
utilisé avant qu'on ne lui ait associé une valeur.
Cause probable :
Dans votre programme, le nom inconnu est 'c'.
L'exécution s'est arrêtée à la ligne 4 du fichier 'AVANTPY-TESTS:\pyfr\raise_name_error.pyfr'
1: """Should raise NameError"""
2:
3: a = 1
-->4: b = c
5: d = 3
NobreakFirstError¶
Erreur de syntaxe AvantPy :
NobreakFirstError: nobreak must be first statement on a line
Le mot-clé 'pasinterrompu' spécifique à Avantpy peut seulement être utilisé
au lieu de sinon (Python: else) lorsqu'il débute un nouvel énoncé
dans des boucles 'pourchaque' ou 'tantque' (Python: for/while).
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_nobreak_first.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise NobreakFirstError'''
2: # Need to prevent pasinterrompu being replaced by 'else' in this situation.
-->3: a = 1 if True pasinterrompu 3
^
NobreakSyntaxError¶
Erreur de syntaxe AvantPy :
NobreakSyntaxError: Keyword nobreak not matching a valid block
Le mot-clé 'pasinterrompu' spécifique à Avantpy peut seulement être utilisé
au lieu de 'sinon' (Python: else) lorsqu'il débute un nouvel énoncé
dans des boucles 'pourchaque' ou 'tantque' (Python: for/while).
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_nobreak_syntax.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise NobreakSyntaxError'''
2: # Need to prevent pasinterrompu being replaced by 'else' in this situation.
3: a = 1
-->4: pasinterrompu: pass
^
RepeatFirstError¶
Erreur de syntaxe AvantPy :
RepeatFirstError: repeat must be first statement on a line
Le mot-clé 'répéter' spécifique à Avantpy peut seulement être utilisé
pour débuter une nouvelle boucle
(équivalent Python: 'for' ou 'while').
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_repeat_first.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
1: '''Should raise RepeatFirstError'''
2: # Catch an early case of using répéter not to begin a loop
-->3: a = répéter
^
TryNobreakError¶
Erreur de syntaxe AvantPy :
TryNobreakError: Keyword nobreak found matching try/except
Le mot-clé 'pasinterrompu' spécifique à Avantpy ne peut pas être utilisé dans
un énoncé 'essayer/siexception/sinon/finalement' (Python: try/except/else/finally).
Python peut seulement analyser le fichier 'AVANTPY-TESTS:\pyfr\raise_try_nobreak.pyfr'
jusqu'à l'endroit indiqué par --> et ^.
4: A = 1
5: siexception:
6: A = 2
--> 7: pasinterrompu:
^
UnknownDialectError¶
Exception AvantPy:
UnknownDialectError: Unknown dialect pyxx
Le dialecte inconnu suivant a été demandé : pyxx.
Les dialectes connus sont : ['pyen', 'pyes', 'pyfr', 'pyupper'].
L'exécution s'est arrêtée à la ligne 13 du fichier 'AVANTPY-TESTS:\pyfr\raise_unknown_dialect.pyfr'
10:
11: from avantpy import session
12:
-->13: session.state.set_dialect('pyxx')
14:
session: <module 'avantpy.session' from 'C:\\Users\\an...>
Exception levée à la ligne 134 du fichier 'AVANTPY:\avantpy\session.py'.
132: if not self.is_dialect(dialect):
133: raise exceptions.UnknownDialectError(
-->134: "Unknown dialect %s" % dialect, (dialect, self.all_dialects())
135: )
dialect: 'pyxx'
self: <avantpy.session._State object>
UnknownLanguageError¶
Exception AvantPy:
UnknownLanguageError: Unknown language xx
Le langage inconnu suivant a été demandé : xx.
Les langages connus sont : {'en', 'fr'}.
L'exécution s'est arrêtée à la ligne 13 du fichier 'AVANTPY-TESTS:\pyfr\raise_unknown_language.pyfr'
10:
11: from avantpy import session
12:
-->13: session.state.set_lang('xx')
14:
session: <module 'avantpy.session' from 'C:\\Users\\an...>
Exception levée à la ligne 159 du fichier 'AVANTPY:\avantpy\session.py'.
157: if not self.is_lang(lang):
158: raise exceptions.UnknownLanguageError(
-->159: "Unknown language %s" % lang, (lang, self.languages)
160: )
lang: 'xx'
self: <avantpy.session._State object>