Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Repozitorijs ir arhivēts. Tam var aplūkot failus un to var klonēt, bet nevar iesūtīt jaunas izmaiņas, kā arī atvērt jaunas problēmas/izmaiņu pieprasījumus.
 
 
 
 
 
 

2.0 KiB

% Programmation avec Python (chapitre 10) % Dimitri Merejkowsky

\center \huge Rappels

  • string formatting (%, .format(), f”")
  • abstract base classes

\center \huge Exceptions

  • Examples:

    • division par zéro
    • dépassement d’un tableau
    • clé non trouvée dans un dico
    • opération entre types incompatibles
    • le fichier n’existe pas
    • la variable n’existe pas
  • les backtraces

    • comment les lire
    • y a un sens!
def une_fonction():
	return 1 / 0

def une_autre_fonction():
    une_fonction()

une_autre_fonction()
def une_fonction(diviseur):
	return 1 / diviseur

def une_autre_fonction():
    une_fonction(diviseur=0)

une_autre_fonction()

Lever une exception

def retirer_somme(compte, montant):
   solde = ...
   if montant >= solde:
           raise ValueError("montant supérieur au solde!")

Attraper une exception

  • Quand c’est pas le bon type, ben ça throw quand même
  • On peut mettre plusieurs blocs de catch
  • On peut attraper plusieurs exceptions d’un coup

Attention aux bare except

Hiérarchies

À connaître À utiliser si vous faites une librairie.

finally, else

WBYL et EAFP

Watch Before You Leap Easier to Ask for Forgiveness than Permission

fichiers encore:

if exists():
if pas_un_dossier():
if j_ai_les_droits_en_lecture():
open(filename):
try:
    open(filename):
catch IOError:
    ...

avec with

attention a ou vous mettez except

if truc:
    if machin:
        for bidule in chose:
            raise MyError("kaboom!")
if truc:
    if machin:
        try:
            for bidule in chose:
                raise MyError("kaboom!")
        except:
        	...

if truc:
    try:
        if machin:
            for bidule in chose:
                raise MyError("kaboom!")
    except:
	...

Accédér aux détails de l’exceptions

  • Avec as
  • Attrribut args
  • Parfois d’autres atttributs (voir la doc)