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?
> 2. How would one write portable exception handling for Python 2.4 and 2.5?
>
> I have code like this:
>
> try:
> do something
> except WindowsError, details:
> if not details.errno in (TYPE_E_REGISTRYACCESS, TYPE_E_CANTLOADLIBRARY):
> raise
>
> Doesn't work in 2.5 any longer, because I would have to use details.winerror
> instead of e.errno.
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
Regards,
Martin
_______________________________________________
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