...
Here is the implementation of dmlc::Error: https://github.com/dmlc/dmlc-core/blob/master/include/dmlc/logging.h#L31
Here are a few examples for the other exceptions inheriting from dmlc::Error: https://github.com/apache/incubator-mxnet/blob/master/src/operator/operator_common.h#L74
and https://github.com/apache/incubator-mxnet/blob/master/src/operator/operator_common.h#L85
Improved Exception Types for the Frontend Language Bindings - (Python, Scala, Perl..)
Will require a mapping of error codes and corresponding frontend exceptions.
The setting of error code for the frontend exception currently happens here: https://github.com/apache/incubator-mxnet/blob/master/src/c_api/c_api_common.h#L59
Frontend exception checking for Python example: https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/base.py#L137
Support for handling exception thrown from consumed libraries
Currently we are handling only dmlc::Error and terminating the process for other exceptions. Once we have finished the above two tasks,
It should be easy to add exception mapping in the frontend corresponding to std::exception in backend. This will ensure that all exceptions inheriting from dmlc::Error
and std::exception are handled and propagated to frontend.
I