Ressources



Programmation défensive


  • Vérification du type de données avec isinstance(valeur, type):


Cette fonction vérifie que valeur est du type "type", elle renvoie True si c'est le cas et False dans le cas contraire.


Exemples:


L = [1,2,3]

nombre = 'a'


if isinstance( L, list ) :    


ici le "if" est évalué True parce que isinstance( L, list  renvoie True ( L est bien du type list )


if isinstance( L, list ) and isinstance(nombre, int):


isinstance( L, list ) renvoie True

isinstance(nombre, int) renvoie False  # 'a' n'est pas un type int c'est un str

True and False vaut False, le if est donc False



  • Gestion d'exception


 Une exception est l'arrêt du déroulement du programme suite à une erreur détecté. L'interpréteur de python gère les exceptions, on peut les gérer nous même afin de personnaliser l'action à conduire en cas d'exception. Ci dessous le code qui gère les exceptions de manière globale ( toutes les exceptions sont prises en compte)  avec un bloc  try  except:


try:


    # ici un code à risque: que va saisir l'utilisateur?

    nombre = int( input( "entrez votre nombre de notes:") )



except:


    print("veuillez entrer un type de données valide")



L'exception se déclenchera une exception ValueError si l'utilisateur ne communique pas à la fonction input() un caractère convertible en integer par la fonction  int(...) 


exemple: nombre = int( input( "entrez votre nombre de notes:") )  # je saisis a

ValueError: invalid literal for int() with base 10: 'a'


Ci-dessous le code gère uniquement l'exception ValueError:


try:


    # ici un code à risque: que va saisir l'utilisateur?

    nombre = int( input( "entrez votre nombre de notes:") )



except ValueError:


    print("veuillez entrer un type de données valide")


Créé avec HelpNDoc Personal Edition: Créer des documents d'aide CHM facilement