Tratamiento de excepciones

Chema Cortés chemacortes en wanadoo.es
Sab Jun 1 19:20:10 CEST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Vie 31 May 2002 18:48, Attila Saorin escribió:

> Buenas de nuevo,
>
> os queria preguntar, ?cuando hemos de contemplar una posible excepcion o
> aniadir en nuestro un codigo un?:
> try:
>    ....
> except...:
>    .....
>
> imagino que hay casos muy claros donde hay que ponerlos pero tampoco creo
> que se deba abusar de ellos , ents queria saber si hay algun sitio donde
> diga como y cuando se recomiendan su uso y donde y cuando se desaconseja.

No creo que haya una "norma" fija, ni en python ni en otros lenguajes. La idea 
de esta sentencia es hacer volver la ejecución a un estado normal, casi 
siempre anterior al que ha provocado la excepción.

En la práctica, las excepciones son un mecanismo de salto desde lo más 
profundo del stack de llamadas a una función en un nivel más alto.

Es mejor dejar pasar las excepciones siempre que no se vea claro cómo 
procesarlas. Si nadie las intercepta, ya habrá algo en el nivel superior que 
se encargue de ellas (mensaje de error, debugger, etc).

Es frecuente el uso de esta sentencia para agrupaciones como ésta:

try:
  f1=file("Fichero1.txt")
  f2=file("Fichero2.txt")
  f3=file("Fichero3.txt")
except:
  print "No he podido abrir los ficheros"

No me parece buena táctica, sobre todo porque acabas sin saber qué error te ha 
dado, así como que puedes haberte dejado algunos ficheros abiertos.

Saludos,
- -- 
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
  ZARALINUX  http://www.zaralinux.org | "La ignorancia se apodera de quien
    PYTANDO  http://pytando.sf.net    |     se contenta con lo que sabe"
      PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8+QJKHLTQrABk8H0RAt0NAJoDh1J1zp22Z4d1M8e3+fZTxt2HKACeKGbF
+e/vnJyN8OS9VHhGCyNmWw8=
=69fi
-----END PGP SIGNATURE-----


Más información sobre la lista de distribución Python-es