protected virtual void HandleMessage(string physicalChannel, RedisValue rawMessage, IMessageProcessor processor) { try { if (!_messageParser.TryParse(rawMessage, out var parsedMessage)) { OnInvalidMessageFormat(physicalChannel, rawMessage); return; } processor.ProcessMessage(parsedMessage, physicalChannel); } catch (Exception exception) { var shouldRethrowException = OnMessageHandlingException(exception); if (shouldRethrowException) { throw; } } }