Skip to Main Content
Python Programming On Win32
book

Python Programming On Win32

by Andy Robinson, Mark Hammond
January 2000
Intermediate to advanced content levelIntermediate to advanced
672 pages
21h 46m
English
O'Reilly Media, Inc.
Content preview from Python Programming On Win32

Error Handling

COM uses three schemes to report error information to client applications:

  • All COM interface methods return an integer status code (known as an HRESULT ), with COM defining many common values for these HRESULTs. There is an HRESULT to indicate success and a number of HRESULTs that indicate warnings. All other HRESULT values indicate an error status.

  • COM defines two special interfaces that report extended error information—ISupportErrorInfo and IErrorInfo. When any method fails, the client can perform a QueryInterface() to determine if the interface supports providing additional error information.

  • IDispatch (automation) interfaces have a standard technique for reporting COM exceptions. When an IDispatch object encounters an error, it fills out an exception structure and returns it to the caller.

The PythonCOM framework combines all these error-reporting mechanisms into a single, Python-exception mechanism. This means you can effectively ignore the three techniques listed: PythonCOM unifies them, so you never need to know how the details of an error were obtained.

All COM errors are reported to Python programs as pythoncom.com_error exceptions. The exception value has the following parts:

  • The HRESULT of the COM function.

  • A text representation of the HRESULT. For example, if the HRESULT is E_NOINTERFACE, the text representation is (for English users) “No such interface supported.”

  • Additional exception information as described later in this chapter, or None if no additional ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Advanced Python Programming - Second Edition

Advanced Python Programming - Second Edition

Quan Nguyen

Publisher Resources

ISBN: 1565926218Supplemental ContentErrata Page