We should change the rate_limiter class to throw the errors of the input checks before the member variables are set. So we can catch the errors in the diff_drive_controller::SpeedLimiter::set_params method, otherwise we have to reimplement the checks to avoid crashing the controller.
Originally posted by @christophfroehlich in ros-controls/ros2_controllers#1781 (comment)