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

Hernan M Foffani <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
>>>> 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 {
>>>  ....
>>> }
>>>
>>> Además de que la documentación de Java detalla las excepciones que lanza.
>>>
>>> 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.
>>>
>>> Mi caso particular es django, que la documentación no explica las
>>> excepciones que lanzará la función.
>>
>> No se puede. Python no tiene checked exceptions.
>
> Ya por curiosidad, cuando tienes una función en la que no documentan
> sus excepciones, ¿cómo haces para saber qué excepciones puede lanzar?

Ni lo intento. :-P

En realidad no hay forma (ni siquiera en Java, como ya han comentado) de
saber a ciencia cierta qué excepciones podría lanzar un trozo de código en
cualquier circunstancia de ejecución.

Como norma general, no atrapo excepciones hasta el momento en que el
consumidor pueda tomar alguna acción positiva y sólo hago distinciones entre
las excepciones si me interesa tomar caminos perfectamente diferenciados
ante cada excepción y ésto último sólo se da en contadísimos casos que muy
probablemente ya están identificados por el dominio de la aplicación.

En la práctica para la 99% de los casos no hay diferencias entre un error porque
el disco está lleno y otro porque no el usuario no tiene permiso de escritura en
un directorio.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.