cms-gem-daq-project / ctp7_modules

0 stars 13 forks source link

Emit RPC error specifics #158

Open vetens opened 4 years ago

vetens commented 4 years ago

Brief summary of issue

This issue is for the discussion of what to do with specific EMIT_RPC_ERROR functions which are called.

Since we are migrating the module to not make explicit reference to the rpc methods we will need to rethink any times where the code explicitly emits an rpc error and perhaps raise an exception

Types of issue

Current Behavior

For example, in gbt.cpp lines 46, 107, 125, 129, 162, 166, 189, and 193, there are several calls to EMIT_RPC_ERROR( response, message, errorcode). For some of these we may want to raise an exception in addition to logging it in the usual manner.

https://github.com/jsturdy/ctp7_modules/blob/53ccd17de4bae8619fbe355f7f8c62637a467273/include/utils.h#L207-L216

Currently the implementation for this migration is to replace the EMIT_RPC_ERROR calls with LOG4CPLUS_ERROR(logger, message) so I would like to establish how and when to raise exceptions in gbt and other submodules

jsturdy commented 4 years ago

In the cases that these errors return exit codes that indicate failure, now an appropriate exception should be raised (std::runtime_error, std::range_error, etc.,, though @lpetre-ulb or @lmoureaux can comment if there only certain types that will pass natively through the template, though i think all those defined (or inherited from) here are fine)

vetens commented 4 years ago

so in one of those cases should I still also log it to LOG4CPLUS_ERROR?

jsturdy commented 4 years ago

I think all exceptions should probably be logged as error or warning at least, as a general rule