[Python-Dev] Exceptions and slicing (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Wed Sep 20 21:58:36 CEST 2006
- Previous message: [Python-Dev] Exceptions and slicing
- Next message: [Python-Dev] Exceptions and slicing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thomas Heller schrieb:
1. The str of a WindowsError instance hides the 'real' windows error number. So, in 2.4 "print errorinstance" 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 (TYPEEREGISTRYACCESS, TYPEECANTLOADLIBRARY): 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
- Previous message: [Python-Dev] Exceptions and slicing
- Next message: [Python-Dev] Exceptions and slicing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]