Re: [pyar] Re: whyname corregido

Top Page
Attachments:
+ (text/plain)
Delete this message
Reply to this message
Author: Daniel F Moisset
Date:  
To: pyar
Subject: Re: [pyar] Re: whyname corregido

On Mon, 2008-10-06 at 18:19 -0200, Mariano Guerra wrote:
> >
> > A) Tratás de evaluar una función fuera de su dominio. Por ejemplo
> > math.sqrt(-1), 1/0, dict.__getitem__(d, k) cuando k no es una clave de
> > d, f.write("Hola mundo") cuando f es un archivo abierto sólo para
> > lectura o persona.barrer() cuando len(persona.escobas)==0.
> > B) Te vino algún mensaje genérico externo que no sabés manejar; por ej
> > una señal del sistema operativo de las graves. O un "te quedaste sin
> > memoria"
> > C) Algún chequeo de consistencia interno falla: puede ser un assert en
> > tu código, o que el runtime de repente se encontró con un reference
> > count que era -47.
> >
> > Los casos del punto A) son todos casos que deberías poder prevenir. Si
> > prevenís esos casos, todo lo que queda son situaciones catastróficas (se
> > pinchó el interpreté, se acabó la memoria, te pasaste del tiempo de CPU
> > permitido, o se acabó el café).
>
> pense que era el unico que pensaba A) :D, en un proyecto nuevo, en
> 7000 lineas de codigo tengo 4 raises, y por ahi me parece raro
> escribir tan pocos, pero lo que si noto es que no escondo ninguna
> informacion de utilidad al usuario, no uso returns para devolver
> informacion de error ni nada por el estilo, siempre uso algo asi como
> el ejemplo que dio Daniel sobre los archivos.


No sos el único... Ward Cunningham dice "exceptions are exceptional:
they should only be used for rare events, not for the normal control
flow".

Si 4 raises en 7000 líneas de código te parece ajustado, hay gente
acostumbrada a este estilo. Fijate la tabla en la página 33 de
http://homepages.cs.ncl.ac.uk/alexander.romanovsky/home.formal/EHOOS-report.pdf
para algunos ejemplitos: 13 raises en 372000 lineas de código, ó 0
raises en 115000. Eso laburando en un contexto donde en todas las capas
tenés la noción de "una excepción es algo catastrófico" (pero con
generación de excepciones cuando el developer mete la pata, no es que
sea programación en C)

En particular, si te interesa el tema, el informe ese tiene varios
papers de una conferencia, y un par de ellos estan buenos.

Saludos,
    D.




---------------------------------------------------------------------
Para dar de baja la suscripcion, mande un mensaje a:


Para obtener el resto de direcciones-comando, mande un mensaje a:


PyAr - Python Argentina - Sitio web: http://www.python.com.ar/