Re: is there any good pratice f or error handling in Win32 & COM development?
This is a subject of debate on several newsgroups and discussion lists. So far, my observation is
that the best arguments (and thus the majority opinion) come from the side that say to limit using
exceptions to "exceptional" situations only. There is a high performance cost to be paid for
handling exceptions (especially on x64). For typical, more expected errors, design your functions
to return error codes (such as HRESULTs) or Booleans (bool or BOOL) whenever possible. Most
importantly, ALWAYS check the return codes from these functions and respond to them as needed --
don't just ignore error results. Sometimes, all that is required is to log or report the error and
move on. More often, though, the error means you should also skip some subsequent step, and quite
possibly short-circuit and return from the calling function with an error code -- quite possibly
just echoing the one that was returned already.
In applications whose design would support this, do your best to preserve the "error stack",
possibly with a linked list or arry of "bubbled up" error codes/messages, so that when the call
stack is popped back down, you have the history to show which errors triggered the subsequent ones
leading to the ultimate failure of the operation. See this collection of articles that talk about
the error-handling APIs and interfaces (like IErrorInfo, ICreateErrorInfo, ISupportErrorInfo) used
in Automation:
Error Handling Interfaces (Component Automation):
http://msdn.microsoft.com/en-us/library/ms221510.aspx
These are good patterns that can be followed elsewhere, as well (not just Automation).
"thinktwice" <memorialday@gmail.com> wrote in message
news:2358b5bb-bb60-4d9e-978d-340bc15e610f@j9g2000prh.googlegroups.com...
like utility c++ class, macros for error handling.
i'm looking for a good pratice to follow to deal with error handling,
is there anyone to recommend, or maybe you have already have your way
to deal with this issue , would you mind share with me? thanks in
advance