I'm looking at how windows deals with invalid parameters in some of the winmm functions and it raises some questions. Sometimes they will check the parameters and return an error code and sometimes they will let a bad parameter cause a first-chance exception and catch it and return an error code.
Is it ok to do a simple NULL pointer check and return an error rather than letting it cause an exception and catching it? If not, what's the best way to catch the exception and return the proper error code?
Robert Reif a écrit :
I'm looking at how windows deals with invalid parameters in some of the winmm functions and it raises some questions. Sometimes they will check the parameters and return an error code and sometimes they will let a bad parameter cause a first-chance exception and catch it and return an error code.
Is it ok to do a simple NULL pointer check and return an error rather than letting it cause an exception and catching it? If not, what's the best way to catch the exception and return the proper error code?
the normal rule of thumbs is: - don't use exception unless you have to (ie, we have a clear case of an application requiring that feature) => first implementation should be only based on NULL pointer testing - if you need to go further, then setting an exception handler is the thing to do (using IsBadReadPtr or IsBadWritePtr is a not 100% safe, especially in multi-threaded environments)
A+