Being a C++ class library, the SDK uses exceptions to report an error that occurred while performing a specific operation. For example, the SDK raises an exception in case of license check failure. However, using exception throwing as the way of notifying about issues is not always possible. The Handler may process market data asynchronously. Therefore, it may not be able to report errors by throwing exceptions. As a solution, the OnixS::CME::MDH::HandlerListener class contains two members: OnixS::CME::MDH::HandlerListener::onWarning and OnixS::CME::MDH::HandlerListener::onError. The OnixS::CME::MDH::Handler class instance invokes the given members in case of a warning and an error respectively.
In most cases, the OnixS::CME::MDH::Handler manages each issue case on its own. For example, if data is lost, the Handler uses the corresponding recovery service like a TCP recovery or a market state recovery from snapshots according to its parameters. Therefore, in most cases, no additional actions are required from the user side. The Handler keeps processing market data according to its settings. However, under some circumstances, manual intrusions are required. For example, if the Handler cannot join a multicast feed, the user must define further steps.