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 Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com