private function loadItemOrThrowException(
        QueryBuildingEventInterface $event,
        string $eventName,
        EventDispatcherInterface $dispatcher
    ) {
        $queryResult = $this->executeItemQuery($event, $eventName, $dispatcher);

        if (empty($queryResult) && $this->noItemException) {
            $this->logger->notice(
                'Item not found from loader',
                [
                    'loader class' => static::class,
                    'from event' => $eventName,
                    'dispatched event' => $this->itemEventName
                ]
            );

            throw new \RuntimeException('Item not found from loader', 404);
        }

        return $queryResult;
    }