Programación Web y Scripting > Python

 raise y except

(1/1)

DRiMeR:
Pues haciendo la primera clase que intento hacer en python, me ha surgido una duda.

Es simplemente, que cuando he definido un método dentro de la clase, quería comprobar que se hubieran "instanciado" algunos atributos,y en caso negativo lanzar una excepción. El hecho de comprobar los atributos me va bien, pero al lanzar la excepción lo he hecho así:


--- Código: Text ---raise 'NoInicialziado" 
Y en el programa principal, tengo un:


--- Código: Text ---try:  v.metodo()except 'NoInicializado' 
Y esto me funciona! Pero Python me lanza el siguiente error:


--- Código: Text ---DeprecationWarning: raising a string exception is deprecated 
Esto es grave?? O debería hacerlo de otra forma?

RadicalEd:
Prueba así:

--- Código: Python ---try:....v.metodo()except:....print 'No inicializado' Creo que de esa forma es más fácil.

DRiMeR:
Es verdad, así me funciona. el raise y el except los he dejado sin la cadenay perfecto.

Pero y si quisiera distinguir entre varios tipos de excepciones?? Como por ejemplo, una que se produzca durante el manejo de archivos, y otra durante la conexión a una web. Son ejemplos... no quiero hacer nada de eso, pero es que ya me gustaría saberlo.


Un saludo. Y gracias.

RadicalEd:
Para manejar varias excepciones puedes hacerlo de esta forma

--- Código: Python ---except (error1, error2, error2, errorN): except error1:....codigoexcept error2:....codigoexcept error3:....codigoexcept errorN:....codigo Busca dentro de los manuales de Python, recuerda también que el raise es para generar la excepción.

DRiMeR:
Ok, muchas gracias. Ahora todo me cuadra más... ejejej

SAlu2.

Navegación

[0] Índice de Mensajes

Ir a la versión completa