Afficher le message d'erreur en levant une exception
Bonjour à tous,
J'ai créé une classe ParametreTypeIncorrect qui hérite de la classa Exception pour pouvoir gérer les types des arguments passés à des instructions comme IADD, SCONST, SOUT, SIN, etc ... Dans le cadre du petit programme que j'essaie de coder (que dieu me vienne en aide!), je ne considère que les types int et str.
Voici ma sous classe ParametreTypeIncorrect :
Code:
1 2 3 4 5 6 7 8 9
|
class ParametreTypeIncorrect(Exception):
#Détecte une erreur lorsqu'un type autre que str et int existent
def __init__(self,s):
self.ArgumentPasse=s
def get_ArgumentPasse(self):
return self.ArgumentPasse
def __repr__(self):
return "'{}':Je ne connais que les 'int' et les 'str', désolé !".format(self.ArgumentPasse) |
et voici une partie de mon code où je la lève :
Code:
1 2 3 4 5 6 7 8
|
def VerificationDesCommandes(LesCommandes):
for s in LesCommandes:
if len(s)==1:
..........
else:
assert(len(s)==2), "Element vide ou surnuméraire dans la liste des commandes"
if (type(s[1])!=int) | (type(s[1])!=str): raise ParametreTypeIncorrect(s[1]) |
Je teste ma fonction VerificationDesCommandes avec l'exemple suivant :
Code:
1 2 3 4
|
LesCommandes=[['SCONST','hello'],['SOUT'],['STOP']]
VerificationDesCommandes(LesCommandes)
print("Il a verifie et n'a pas trouve d'erreurs") |
et j'obtiens le TraceBack suivant :
Code:
1 2 3 4 5 6 7 8 9
|
Traceback (most recent call last):
File "VerificationCommandes.py", line 105, in <module>
testVerificationDesCommandes(LesCommandes)
File "VerificationCommandes.py", line 102, in testVerificationDesCommandes
VerificationDesCommandes(LesCommandes)
File "VerificationCommandes.py", line 91, in VerificationDesCommandes
if (type(s[1])!=int) | (type(s[1])!=str): raise ParametreTypeIncorrect(s[1])
__main__.ParametreTypeIncorrect |
Est ce que __main__ est une méthode de la classe Exception ? Et comment je peux faire pour afficher le message d'erreur que j'ai mis dans la définition de la méthode __repr__ ?
Bien cordialement.