Re: [Python-es] Saber que excepciones lanza una func ión
Francisco Javier Cuadrado <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
El 26 de agosto de 2009 15:32, lasizoillo<[email protected]> escribió: > El 26 de agosto de 2009 13:14, Francisco Javier > Cuadrado<[email protected]> escribió: >> El 26 de agosto de 2009 12:37, Félix Palazuelos >> Pérez<[email protected]> 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