The primary execution of most actions in dl-py takes place in C++, so most error handling will end up in the C++ code. Between C++ and Python the typical sequence of stages is Caller (Python) --> Execution (C++) --> Details (Python). Details includes things like doing calibrations. Most time is spent in the Execution and Details stages, and the Execution stage is typically responsible for the final error handling and making decisions about whether to exit the application. So we need to ensure that the error handling drops back to the C++ in the right ways.
Exception handling in dl-cpp: https://github.com/driplineorg/dripline-cpp/issues/103
The primary execution of most actions in dl-py takes place in C++, so most error handling will end up in the C++ code. Between C++ and Python the typical sequence of stages is
Caller (Python) --> Execution (C++) --> Details (Python)
.Details
includes things like doing calibrations. Most time is spent in theExecution
andDetails
stages, and theExecution
stage is typically responsible for the final error handling and making decisions about whether to exit the application. So we need to ensure that the error handling drops back to the C++ in the right ways.Caller stage
service::listen()
and checks boolean returnExecution stage
See https://github.com/driplineorg/dripline-cpp/issues/103
Details stage
calibration()
exceptions.DriplineValueError
DriplineValueError
_send_request()
get()
,set()
, andcmd()
I have not checked any code in Implementations.