[Python-Dev] Exceptions and slicing
Thomas Heller
theller at python.net
Wed Sep 20 22:11:58 CEST 2006
Martin v. Löwis schrieb:
> Thomas Heller schrieb:
>> 1. The __str__ of a WindowsError instance hides the 'real' windows
>> error number. So, in 2.4 "print error_instance" would print
>> for example:
>>
>> [Errno 1002] Das Fenster kann die gesendete Nachricht nicht verarbeiten.
>>
>> while in 2.5:
>>
>> [Error 22] Das Fenster kann die gesendete Nachricht nicht verarbeiten.
>
> That's a bug. I changed the string deliberately from Errno to error to
> indicate that it is not an errno, but a GetLastError. Can you come up
> with a patch?
Yes, but not today.
>> 2. How would one write portable exception handling for Python 2.4 and 2.5?
>>
> Portable code should do
>
> def winerror(exc):
> try:
> return exc.winerror
> except AttributeError: #2.4 and earlier
> return exc.errno
>
> and then
>
> try:
> do something
> except WindowsError, details:
> if not winerror(details) in (TYPE_E_REGISTRYACCESS,
> YPE_E_CANTLOADLIBRARY):
> raise
Ok (sigh ;-).
Thanks,
Thomas
More information about the Python-Dev
mailing list