Excepcions
El millor per aclarir el tema d'excepcions és llegir els articles a:
- Wikipedia: http://es.wikipedia.org/wiki/Manejo_de_excepciones
- python.org: http://docs.python.org/2/tutorial/errors.html
- Per llançar una excepció: http://docs.python.org/2/tutorial/errors.html#raising-exceptions
- Crear les nostres pròpies (user-defined exceptions): http://docs.python.org/2/tutorial/errors.html#user-defined-exceptions
- Llistat d'excepcions de Python: http://docs.python.org/2/library/exceptions.html
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":
exit()
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":
exit()
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
...