[pyar] Mensaje de exepción
Alejandro Santos
listas en alejolp.com
Vie Sep 30 18:25:31 ART 2011
2011/9/28 Daniel <dmlistapython en gmail.com>:
>
> raise PrinterException("Imposible establecer comunicación.", e)
>
> ¿cómo accedo al mensaje "imposible establecer comunicación" desde el
> bloque try que la ocasiona?
>
Cuando me encuentro con este problema, donde no sé que nombre de campo
usar, uso la función dir(x) que devuelve una lista de (casi*) todos
los elementos del objeto:
>>> try:
... raise Exception("Hola")
... except Exception, e:
... print dir(e)
...
['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
'__getattribute__', '__getitem__', '__getslice__', '__hash__',
'__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__setstate__', '__sizeof__', '__str__',
'__subclasshook__', '__unicode__', 'args', 'message']
Entre la lista de resultados, me quedo solo con los que no empiezan
con "__": ['args', 'message']. Probando con "message" genera un
warning:
>>> e.message
__main__:1: DeprecationWarning: BaseException.message has been
deprecated as of Python 2.6
'Hola'
Entonces me fijo con args:
>>> e.args
('Hola',)
[*] por ejemplo si el objeto redefine __getattr__,
http://docs.python.org/library/functions.html#dir
--
Alejandro Santos
More information about the pyar
mailing list