En Mon, 16 Jul 2007 13:50:50 -0300, fumanchu <[EMAIL PROTECTED]> escribió:
> On Jul 15, 2:55 am, Christoph Zwerschke <[EMAIL PROTECTED]> wrote:
>> Here is a simple solution, but it depends
>> on the existence of the args attribute that
>> "will eventually be deprecated" according
>> to the docs
>
> If you don't mind using .args, then the solution is usually as simple
> as:
>
>
> try:
> Thing.do(arg1, arg2)
> except Exception, e:
> e.args += (Thing.state, arg1, arg2)
> raise
>
>
> No over-engineering needed. ;)
If you read enough of this long thread, you'll see that the original
requirement was to enhance the *message* displayed by a normal traceback -
the OP has no control over the callers, but wants to add useful
information to any exception.
Your code does not qualify:
py> try:
... open("a file that does not exist")
... except Exception,e:
... e.args += ("Sorry",)
... raise
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IOError: [Errno 2] No such file or directory: 'a file that does not exist'
py> try:
... x = u"á".encode("ascii")
... except Exception,e:
... e.args += ("Sorry",)
... raise
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in
position 0:
ordinal not in range(128)
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list