acts: Fatal Error in local-to-global transformations

Sometimes when running the Acts::Propagator, there are cases where the CovarianceEngine throws a fatal error when trying to perform a global to local transformation here. This fatal error throws an exception and then immediately stops the code from continuing to process, rather than just returning an error message and continuing. I think it would be an improvement if instead an error message was thrown that could be caught at the user level of the API, e.g. as in

auto result = propagator.propagate(arguments);

/// If there was this global-to-local transformation problem, then result.ok() == false
if(!result.ok())
   /// The user can then do whatever they want to here
   std::cout << "there was a global to local transformation problem" << result.error() << std::endl; 

This way the error does not crash the code and the user can handle it however they want (e.g. by skipping that particular propagation).

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 26 (23 by maintainers)

Commits related to this issue

Most upvoted comments

Ok. I think this function should in turn use Result to let the error bubble up if it encounters one.

I will put it on my list for Thursday, so I hope we can check/update this by the end of the week.