Milestone #17719: Booster operational test of one crate alongside existing BPM system
bpmd error facility
Design and implement a smart error handling facility for bpmd.
#3 Updated by John Diamond about 3 years ago
- Status changed from Assigned to Work in progress
- % Done changed from 0 to 50
Implemented an exception class called BPMError that ADInstBPM can use for throwing exceptions that identify a subsystem and error code much like ACNET/MOOC.
Defined several global constant BPMErrors in defs.H. Went through code line-by-line and replaced runtime_error throw's with the appropriate BPMError instance.
Modified ACNET classes to catch certain BPMErrors and re-throw the appropriate AcnetError that the front end framework uses to signal error conditions to ACNET. Also added several global constants that define various BPM error codes from the rbpm project that are already understood by ACNET.
We'll see if this system works well and will update this ticket with ideas for improvement.