raise en evento wx

Oswaldo Hernández listas en soft-com.es
Mie Feb 22 11:03:34 CET 2006


Hola a todos,

Estoy intentando generar una excepcion desde un formulario wx, pero al parecer no esta funcionando 
como creo que debiera.

La estructura es esta

class MyDialog(wx.Dialog):
	....

	def On_BtnCancelar(self, event):
		# evento de cancelacion de entrada
		# cierre de formulario modal y generacion de error

		self.Close()
		raise Exception("Cancelado por el usuario")
		event.Skip()
	...

# lanzamiento del formulario
if __name__ == "__main__":
     app = wx.PySimpleApp(0)
     wx.InitAllImageHandlers()
     dialog_1 = MyDialog(None, -1, "")

     try:
         dialog_1.ShowModal()
         print "======================="
         print "Formulario NO Cancelado"
         print "======================="
     except:

         print "Formulario Cancelado"


el resultado de ejecutar y pulsar en cancelar es:

Traceback (most recent call last):
   File "C:\Python24\pruebas\pruebaraise.py", line 38, in On_BtnCancelar
     raise Exception("Cancelado por el usuario")
Exception: Cancelado por el usuario
=======================
Formulario NO Cancelado
=======================

Al parecer si se genera la excepcion, pero esta NO es capturada por el try del main.

¿Alguien sabe porque no se esta capturando la excepcion?
¿Estoy haciendolo mal?

El entono que estoy utilizando es:
python 2.4.1
wx 2.6.1 unicode
Windows XP

Adjunto el fichero .py con el ejemplo funcional

Agradeceria cualquier comentario, gracias.
-- 
*****************************************
Oswaldo Hernández
oswaldo en soft-com.es
*****************************************
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: pruebaraise.py
URL: <http://mail.python.org/pipermail/python-es/attachments/20060222/cb2cf4d3/attachment.ksh>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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