• Viernes 3 de Mayo de 2024, 05:41

Autor Tema:  raise y except  (Leído 1477 veces)

DRiMeR

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
    • http://www.informatizados.es
raise y except
« en: Lunes 18 de Mayo de 2009, 11:13 »
0
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
  1. raise 'NoInicialziado"
  2.  

Y en el programa principal, tengo un:

Código: Text
  1. try:
  2.   v.metodo()
  3. except 'NoInicializado'
  4.  

Y esto me funciona! Pero Python me lanza el siguiente error:

Código: Text
  1. DeprecationWarning: raising a string exception is deprecated
  2.  

Esto es grave?? O debería hacerlo de otra forma?

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: raise y except
« Respuesta #1 en: Lunes 18 de Mayo de 2009, 15:29 »
0
Prueba así:
Código: Python
  1. try:
  2. ....v.metodo()
  3. except:
  4. ....print 'No inicializado'
  5.  
Creo que de esa forma es más fácil.
El pasado son solo recuerdos, el futuro son solo sueños

DRiMeR

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
    • http://www.informatizados.es
Re: raise y except
« Respuesta #2 en: Lunes 18 de Mayo de 2009, 16:04 »
0
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

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: raise y except
« Respuesta #3 en: Lunes 18 de Mayo de 2009, 16:15 »
0
Para manejar varias excepciones puedes hacerlo de esta forma
Código: Python
  1. except (error1, error2, error2, errorN):
  2.  
  3. except error1:
  4. ....codigo
  5. except error2:
  6. ....codigo
  7. except error3:
  8. ....codigo
  9. except errorN:
  10. ....codigo
  11.  
Busca dentro de los manuales de Python, recuerda también que el raise es para generar la excepción.
El pasado son solo recuerdos, el futuro son solo sueños

DRiMeR

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
    • http://www.informatizados.es
Re: raise y except
« Respuesta #4 en: Lunes 18 de Mayo de 2009, 17:29 »
0
Ok, muchas gracias. Ahora todo me cuadra más... ejejej

SAlu2.