Excepcions: Diferència entre les revisions

De Cacauet Wiki
Dreceres ràpides: navegació, cerca
(Control d'errors)
(Control d'errors)
Línia 18: Línia 18:
 
         a = raw_input("Entra dades: ")
 
         a = raw_input("Entra dades: ")
 
         if a == "sisplau":
 
         if a == "sisplau":
             exit()
+
             break
 
         print str(a)
 
         print str(a)
 
     except KeyboardInterrupt:
 
     except KeyboardInterrupt:
Línia 30: Línia 30:
 
         a = raw_input("Entra un nombre: ")
 
         a = raw_input("Entra un nombre: ")
 
         if a == "sisplau":
 
         if a == "sisplau":
             exit()
+
             break
 
         print int(a)
 
         print int(a)
 
     except :
 
     except :

Revisió de 18:20, 20 nov 2014

El millor per aclarir el tema d'excepcions és llegir els articles a:


Control d'errors

L'aplicació més important de les excepcions és el control d'errors. Un típic cas sol ser capturar un error o un senyal d'algun tipus i gestionar-ho des del programa enlloc del comportament per defecte.

En molts llenguatges el típic control d'errors es fa amb la sentència TRY...CATCH . En el cas del Python és TRY...EXCEPT .

Aquest exemple controla la interrupció per teclat (CTRL+C) i no deixa que l'usuari surti:

while True:
    try:
        a = raw_input("Entra dades: ")
        if a == "sisplau":
            break
        print str(a)
    except KeyboardInterrupt:
        print "vols sortir, oi? Digues la paraula magica..."

També podem capturar TOTES les excepcions (errors) si no especifiquem el tipus:

while True:
    try:
        a = raw_input("Entra un nombre: ")
        if a == "sisplau":
            break
        print int(a)
    except :
        print "ERROR desconegut (tot i que imagino que no has entrat un nombre... oi?)"


Iteracions simplificades

...

Llançament d'excepcions personalitzades

...