<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 12/07/11 17:59, <a class="moz-txt-link-abbreviated" href="mailto:piranna@gmail.com">piranna@gmail.com</a> wrote:<br>
    <...><br>
    <blockquote
cite="mid:CAKfGGh3HF-c3t0hpM+C-pZixRAOP7XhSU0+SG_-zfc=ucZ6stQ@mail.gmail.com"
      type="cite">
      <pre wrap="">La primera es mas o menos facilmente aceptable, y consiste en añadir
la posibilidad de añadir ramas 'elif' a la excepcion. Un ejemplo
(inventado):
<...>
try:
    user = GetUser()
except ErrorDB:
    print "error al obtener usuario"
elif user == 0:
    print "Administrador"
else:
    print "usuario normal"
finally:
    print "adios"

Hace el try un poco mas complejo e incluso pedante, pero a nivel
interno (bytecode) deberian ser completamente iguales, y ademas es
totalmente retrocompatible.</pre>
    </blockquote>
    Esta propuesta, que podría parecer 'syntactic sugar', resulta ser
    realmente, 'syntactic cyanide'.<br>
    Si la estructura del bloque try no es tan corta como en este caso,
    una lectura rápida en una revisión del código (por ejemplo, a la
    captura de 'bugs'), nos llevaría a identificar incorectamente el
    último bloque como el caso de la excepción no enumerada. Sería un
    infierno.<br>
    <br>
    Hay que tener muy claro que la sintaxis original nos identifica
    inmediatamente dos niveles de proceso distintos: el de la excepción
    y el de la condición. La realimentación visual de la indentación nos
    ayuda. En el caso propuesto es justo al contrario: la realimentación
    visual nos engaña.<br>
    <br>
    Creo que mi respuesta a esta propuesta es muy clara 'Thumbs down'<br>
    <br>
    <blockquote
cite="mid:CAKfGGh3HF-c3t0hpM+C-pZixRAOP7XhSU0+SG_-zfc=ucZ6stQ@mail.gmail.com"
      type="cite">
      <pre wrap="">La segunda es un poco mas conflictiva, porque cambia un poco mas la
sintaxis para un caso expecifico. Consiste en que para una excepcion
(o grupo de excepciones) en concreto para las que no queremos que haga
nada no haya que indicar una rama vacia con 'pass':

try:
    user = GetUser()
except ErrorDB:
    pass
else:
    print "hola",user

Mi idea es que para esas excepciones para las que no se necesite hacer
nada, indicarlas de alguna manera. Mi idea es hacerlo en el try:

try ErrorDB:
    user = GetUser()
else:
    print "hola",user

Obviamente, tambien se puede usar un grupo de excepciones:

try (ErrorDB,SocketError):
    user = GetUser()
else:
    print "hola",user


</pre>
    </blockquote>
    Esta segunda, no me parece tan criticable como la primera. Sólo
    hacer notar que, en el proceso de desarrollo, muchas veces se
    incluyen trazas en vez de 'pass' por razones de depuración o
    'profiling', por lo que esta nueva sintaxis tendería a no ser usada
    porque no sale naturalmente como evolución del código en desarrollo<br>
    <br>
    saludos<br>
    <br>
    Zarea<br>
    <br>
    <div class="moz-signature">-- <br>
      <table align="CENTER" border="4">
        <tbody>
          <tr>
            <td align="LEFT"><b>Q:</b> Why did the mathematician name
              his dog "Cauchy"?</td>
          </tr>
          <tr>
            <td align="LEFT"><b>A:</b> Because he left a residue at
              every pole.</td>
          </tr>
        </tbody>
      </table>
    </div>
  </body>
</html>

<p></p>

-- <br />
Grupo de usuarios de python ubicados en Madrid<br />
<a href="http://groups.google.es/group/python-madrid">http://groups.google.es/group/python-madrid</a><br />
<a href="http://python-hispano.org/PythonMadrid">http://python-hispano.org/PythonMadrid</a><br />
Para darte de baja del grupo envía un mensaje a python-madrid+unsubscribe@googlegroups.com<br />