win32api exception names?
David Bolen
db3l at fitlinxx.com
Mon Jul 30 20:52:45 EDT 2001
"G. Willoughby" <thecalm at NOSPAM.btinternet.com> writes:
> I'm using this function to open a file listed in a Tkinter Listbox widget,
> but i've run into some problems. First when i double click on .htm files
> listed they work perfectly, opening in Explorer, But when i double click on
> .txt files i get this error:
>
> Exception in Tkinter callback
> Traceback (most recent call last):
> File "c:\program files\python\lib\lib-tk\Tkinter.py", line 1285, in
> __call__
> return apply(self.func, args)
> File "D:\Backup\Python Programs\PyFind\PyFind.py", line 61, in executeFile
> win32api.ShellExecute(0, "open" , str(resultPane.get(ACTIVE)),"","",1)
> api_error: (31, 'ShellExecute', 'A device attached to the system is not
> functioning.')
>
> i'm trying to handle this exception, but being new to them i dunno what
> exception is being raised, the 'except EnvironmentError:' line really isn't
> getting it. any ideas?
I can't necessarily address why your code is returning that specific
exception (perhaps a bad path?), but each of the PythonWin modules all
raise an api_error exception for any general Win32 errors. The first
element in the instance data tuple will be the underlying Win32 error
code (31 in this case is ERROR_GEN_FAILURE), then the failing function
call, and finally a textual description.
So if you want to catch these in your exception handler, you can use:
except win32api.api_error, info
and then if necessary, inspect the actual Win32 API error code (in info[0]).
--
-- David
--
/-----------------------------------------------------------------------\
\ David Bolen \ E-mail: db3l at fitlinxx.com /
| FitLinxx, Inc. \ Phone: (203) 708-5192 |
/ 860 Canal Street, Stamford, CT 06902 \ Fax: (203) 316-5150 \
\-----------------------------------------------------------------------/
More information about the Python-list
mailing list