Aluminium95 / PyMastermind

Isn terminale mastermind
1 stars 1 forks source link

Gérer les exceptions #54

Closed Aluminium95 closed 11 years ago

Aluminium95 commented 11 years ago

Il faut gérer les exceptions qui sont lancées par les fonctions ... Aussi bien les nôtres que les autres :-).

En effet, en plus de gérer les plantages (une exception non attrapée fait planter le programme), on peut donner à l'utilisateur des informations utiles sur ce qui se passe, et comment y remédier ...

De quoi aider les gens, une issue précédente était descriptive des exceptions

Aluminium95 commented 11 years ago

J'ai un peu géré les exceptions dans main ... enfin, juste quelques unes qui était « chiantes » :-P.

Aluminium95 commented 11 years ago

J'ai bien avancé, dans main toutes les exceptions sont gérées, enfin je crois, donc normalement, pas de plantage dans main !

Aluminium95 commented 11 years ago

La quasi totalité des exceptions sont attrapées !

Bon, reste une grosse modification, un truc de taille : le faire selon la doc python (les recommandations)


try:
    # Une action qui peut échouer 
except:
    # Une solution 
else:
    # Le code si cela n'a pas échoué 

En lieu et place de


try:
     # Le code qui plante
     # Le code qui suit sera éxécuté si la ligne d'avant n'a pas planté !
except:
     # erreur ...

C'est en effet un truc piège car dans le try plein de chose peuvent planter, sans que l'on s'en rende forcément compte, et donc la gestion des erreurs devient ... problématique :-P.

Aluminium95 commented 11 years ago

Il faut savoir comment gérer les exceptions ... On ne peut pas laisser planter le programme comme ça sans rien ... Par exemple, on peut se demander si une corruption des données de configuration doit faire planter le programme ou non ?

Aluminium95 commented 11 years ago

Refaire la liste de qui throw quoi est nécessaire ... en effet on se perd vite dans la liste !

Aluminium95 commented 11 years ago

Si quelqu'un peut s'en occuper ;-)

Aluminium95 commented 11 years ago

Boh, c'est un peu tard là ... on verra si je continue le projet ;-)