Am 18.01.2011 03:41, schrieb Ron Adam:
>
>
> On 01/17/2011 02:27 PM, Georg Brandl wrote:
>> Am 17.01.2011 21:22, schrieb Ron Adam:
>>>
>>> Is this on purpose?
>>>
>>>
>>> Python 3.2rc1 (py3k:88040, Jan 15 2011, 18:11:39)
>>> [GCC 4.4.5] on linux2
>>> Type "help", "copyright", "credits" or "license" for more information.
>>> >>> Exception.__name__
>>> 'Exception'
>>> >>> e = Exception('has no name')
>>> >>> e.__name__
>>> Traceback (most recent call last):
>>> File "<stdin>", line 1, in<module>
>>> AttributeError: 'Exception' object has no attribute '__name__'
>>
>> It's not on purpose in the sense that it's not something special
>> to exceptions. The class __name__ attribute is not accessible
>> from instances of any class.
>
> Yes, I realised this on the way to an appointment. Oh well. ;-)
>
>
> What I needed was e.__class__.__name__ instead of e.__name__.
>
> I should have thought about this a little more before posting.
>
>
>
> The particular reason I wanted it was to format a nice message for
> displaying in pydoc browser mode. The server errors, like a missing .css
> file, and any other server related errors, go the server console, while the
> content errors get displayed in a web page. ie... object not found, or
> some other content related reason for not giving what was asked for.
>
> Doing repr(e) was giving me too much.
>
> UnicodeDecodeError('utf8', b'\x7fELF\x02\x01\x01\x00\x00\x00\x ....
>
> With pages of bytes, and I'd rather not truncate it, although that would be
> ok.
>
> str(e) was more useful, but didn't include the exception name.
>
> 'utf8' codec can't decode byte 0xe0 in position 24: invalid
> continuation byte
For these cases, you can use traceback.format_exception_only().
Georg
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com