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 theseHRESULT
s. There is anHRESULT
to indicate success and a number ofHRESULT
s that indicate warnings. All otherHRESULT
values indicate an error status.COM defines two special interfaces that report extended error information—
ISupportErrorInfo
andIErrorInfo
. When any method fails, the client can perform aQueryInterface()
to determine if the interface supports providing additional error information.IDispatch
(automation) interfaces have a standard technique for reporting COM exceptions. When anIDispatch
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 theHRESULT
isE_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 ...
Get Python Programming On Win32 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.