I see that since an earlier version of DAAL that I was working with (2016.0.042 on Linux, now looking at 2016.0.049 on Windows) the Status enum is gone and instead some functions may throw exceptions. I am a bit worried about uncaught exceptions that I may miss during testing, but I see that it appears to be possible to define DAAL_NOTHROW_EXCEPTIONS, and then call getErrors() manually.
Is it sufficient just to define DAAL_NOTHROW_EXCEPTIONS to avoid any exceptions being thrown? I can see that it will avoid it happening in any code in the headers, but just wanted to check that exceptions won't be thrown by the code compiled into the DAAL library in this case.
Alternatively, is there a list of functions which may throw exceptions, and/or a list of times at which it is sensible/appropriate to call getErrors?
Many thanks in advance!
Thank you for your question.
Yes, you are completely right. If the flag DAAL_NOTHROW_EXCEPTIONS is defined, Intel® Data Analytics Acceleration Library (Intel® DAAL) won't throw any exceptions both from headers and the binaries. Basically, all the Intel® DAAL algorithms and data management functionality can throw exceptions or generate errors, so it would be sensible to check it using getErrors() after any significant call to Intel® DAAL functionality.
We plan to extend the documentation of the library with respective description of the Error Handling component, its behavior and use models. Please let us know if you have more questions on error handling component.