Re: [Python-es] Saber que excepciones lanza una función

Francisco Javier Cuadrado fcocuadrado en gmail.com
Mie Ago 26 15:38:05 CEST 2009


El 26 de agosto de 2009 15:32, lasizoillo<lasizoillo en gmail.com> escribió:
> El 26 de agosto de 2009 13:14, Francisco Javier
> Cuadrado<fcocuadrado en gmail.com> escribió:
>> El 26 de agosto de 2009 12:37, Félix Palazuelos
>> Pérez<felixpalazuelos en gmail.com> escribió:
>>> Yo las veo ejecutando con la consola, y ahí te saldrán los errores o
>>> excepciones que puedas tener. La verdad, no sé a qué te refieres :S
>>
>> Hola.
>>
>> Básicamente, a lo que me refiero es cómo puedo saber las excepciones
>> que lanzará una función dependiendo de cuando falle, sin hacer prueba
>> y error.
>>
>> En Java es fácil porque la declaración del método lleva las
>> excepciones que lanza, por ejemplo:
>>
>> public int Ejemplo () throws Exc1, Exc2, Exc3 {
>>  ....
>> }
>
> Imagina el siguiente ejemplo:
>
> public int QueMeVoyDeVacasNeng(n) throws Exception{
>   if(n%2)
>     Ejemplo();
>     EjemploDelJonan();
> }
>
> Tu compañero el Jonan de Baraka te ha dejado ese codigo y ha marchado
> que pim, que pam tumbando aguja para su tierra. La función no tiene
> JavaDoc, todas las excepciones estan encapsuladas en Exception. Además
> el Jonan es muy dado a hacer sus propias excepciones descendientes de
> RuntimeException y no dejan rastro en la signature al pasar el javadoc
> (que además no se ha currado), por lo que EjemploDelJonan puede o no
> lanzar excepciones no chequeadas.
>
> La forma de lidiar el problema en python es igual que la de este
> ejemplo (dramatico) en Java, pero sin la falsa seguridad de creer que
> las excepciones son chequeadas por el lenguaje. Cuando revises el
> codigo, tendrás claro si EjemploDelJonan se ejecuta con n impar o no
> ;-)
>
> Espero que esto te ayude un poco a plantear tu tratamiento de
> excepciones en python (y en java).
>
>>
>> Además de que la documentación de Java detalla las excepciones que lanza.
>>
> Casi siempre y cuando el que lo hace no es el Jonan ;-)
>

Está claro que si te toca lidiar con código parecido al del amigo
Jonan vas mal, ya estés programando en Java o Python.

Mi duda partía de un problema cómo el que has ejemplificado a la perfección.

>> Pero en Pyhon si tuviera ese método tendría que mirar la
>> documentación, en algunos casos la documentación no explica las
>> excepciones que lanzará, o el código para ver las excepciones que
>> lanza, a lo que mi duda es si hay alguna manera (p. ej. alguna función
>> de Python) de saber que excepciones lanza el método.
>>
>
> No conozco nada, pero si encuentras algo compártelo.
>
>
> Un saludo:
>
> Javi
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
Saludos

Fran
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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